Using CASE statements...
SELECT
  user_id,
  MAX(CASE WHEN prop_name = 'FirstName' THEN prop_value END) AS FirstName,
  MAX(CASE WHEN prop_name = 'LastName'  THEN prop_value END) AS LastName,
  MAX(CASE WHEN prop_name = 'Age'       THEN prop_value END) AS Age
FROM
  yourTable
GROUP BY
  user_id
Note:  This assumes that no user_id has more the one value for any prop_name, and does not do any casting to different datatypes, but you can add that in if necessary.
Alternatively, you could lookup how to PIVOT in SQL.  Though I know many people are put-off by this and prefer to use the above CASE/Aggregate method.  In either version you must know in advance what columns you want as a result, it can't be done to a dynamic number of columns without dynamic SQL.
EDIT Pivot example due to use of deprecated NTEXT type.
SELECT
  pvt.user_id, [LastName], [FirstName], [Age]
FROM 
  yourTable
PIVOT
  ( prop_value FOR prop_name IN ( [LastName], [FirstName], [Age] ) ) AS pvt
ORDER BY
  pvt.user_id;