Ideally you should use the UnionAggregate function, although that only exists since SQL Server 2012.
http://technet.microsoft.com/en-us/library/ff929095.aspx
Example from previous link:
SELECT City,
geography::UnionAggregate(SpatialLocation) AS SpatialLocation
FROM Person.Address
WHERE PostalCode LIKE('981%')
GROUP BY City;