Some DBMSs support the FROM (SELECT ...) AS alias_name syntax.
Think of your two original queries as temporary tables. You can query them like so:
SELECT t1.Activity, t1."Total Amount 2009", t2."Total Amount 2008"
FROM (query1) as t1, (query2) as t2
WHERE t1.Activity = t2.Activity