NATIONAL--There is a Metro stop at the airport. You can take the Metro to Union Station ($1.20, I believe--www.wmata.com), or a cab shouldn't be more than $10. [link] The blue and yellow lines run from National to DC. The blue line goes to Union Station. You can transfer from the yellow to blue line or orange line. [link]
Small correction--the Blue Line does not go to Union Station. For those who are taking the Metro, the best bet is to take the Blue Line from National to Metro Center, where you will transfer to the Red Line which will take you to Union Station. Don't be afraid to ask for help if you're confused. People do understand.
DULLES AIRPORT runs the Washington Flyer shuttle into DC. [link] For $8, it runs you non-stop to the West Falls Church Metro station, where you can connect to the DC Metro system, on the orange line, which goes straight to Union Station. [link]
Another correction--The Orange Line does not go to Union Station either. If you want to go the Washington Flyer route, take the Orange Line to Metro Center and transfer to the Red Line which will take you to Union Station.
BWI AIRPORT runs a shuttle to a nearby train station, where you can get a train to Union Station in weekdays. There’s also a city bus from BWI to a Metro station. Anne W. lives nearby and has offered to help with pick-up/drop-off and resources. Meara vouches that the train from BWI is easy.
For BWI, there are two options (other than hoping Anne will pick you up). Check out [link] (from “BWI” to “WAS” on main page) or [link] BWI Rail Station Daily 5:30am-9:30pm MD Rt. 170 and Amtrak Way You have to take a shuttle bus to the rail station. Please check the train schedules, if you are coming in very late, it may not be convenient to take the train. Plus, if you take the MARC (commuter) train, it is something like $5, whereas the Amtrak (which runs on the same line) is more like $14. Either of these will take you directly to Union Station.
Another option out of BWI is the Metrobus. [link] for times--I believe it runs later than the Amtrak. There is a bus from the airport to the Greenbelt metro station. [link] This is the last station on the green line, and you can then get on the metro and take it to Union Station. This will be $1.20 for the bus (20 minutes or so), and $2.20 during off-peak hours for the metro (25 minutes, one change of trains) or $2.65 during rush hour.
Be aware that BWI is undergoing renovation which can cause major delays during prime times on the roadways surrounding the airport. Normally it should take 20 minutes to get from the terminal to the Amtrak station, but during peak hours I would allow at least 40-45.
For those departing from BWI, you should also know that the security lines can be horrendous, especially during peak hours. Wait times of 2 hours are not unheard of. I've done it and it sucks. Those leaving from National, you've got it made. I've never waited longer than 10 minutes to get through security. Dulles falls somewhere between the two. The biggest problem for those departing from there will be traffic if you're leaving the city near rush hour.
I hope I haven't stepped on anyone's toes...
-Maria