Here is a solution based on ANSI SQL, which does not use the proprietery PIVOT operator. While it is somewhat more verbose, I find this model easier to understand. It is also a lot easier to extend and adapt to different needs.
SELECT ID, MIN(CASE AddrType WHEN 'Home' THEN HomeCity END) AS HomeCity, MIN(CASE AddrType WHEN 'Mailing' THEN HomeCity END) AS MailingCity FROM #Test GROUP BY ID
One of solutions is:
select ID, isnull(Home, '') as HomeCity, IsNull(Mailing, '') as MailingCity from #Test pivot ( max(HomeCity) for AddrType in ( Home, Mailing ) ) p order by ID