Google Maps estimates the distance at 15 hours driving time, which is probably more than I'd like to spend non-stop at the wheel. What transportation options are available / common? What are the relative costs, and are reservations available via the web?
~15 hours is not that long to be on the road in Argentina. ;-)
You can indeed save time by flying, but if you're not in a hurry, buses are comfortable and a lot cheaper. (Especially since foreigners have to pay more than locals on Aerolíneas Argentinas, or so I've heard/read).
A site called Plataforma 10* is great for checking Argentine bus timetables & buying tickets (you can print them). Locals turned me onto it; it's handier than checking websites of individual operators. With a quick look, 3 companies (Crucero Del Norte, Rio Uruguay, Expreso Singer) run services between BA (Retiro) and Puerto Iguazú, totalling 12 daily departures, with travel time around 17–19 hours and prices from 912 to 1203 $AR (USD 107–141) [as of November 2014].
* Plataforma 10 seems to cover most Argentinian bus companies, but unfortunately not all. At least Via Bariloche also operates the Buenos Aires – Puerto Iguazú route but you can't find it on Plataforma 10.
I agree with Mark that you should definitely pay the (smallish) extra amount for "cama", "cama suite" or "cama ejecutivo" (or whatever the best option is called) for longer trips. With the fully reclining seat you'll get at least some sleep. But reserve early, as these seats tend to get sold out first! (I speak with experience from 21 hrs in semi-cama.)
Buses are great - in Argentina, they're comfortable, serve food, and reliable.
Pick one going overnight, sleep on the bus (get full-cama, not semi-cama - your seat will become a bed!) and be there in the next day! Head to Retiro bus station in Buenos Aires, they all go from there, go upstairs to the 2nd floor and to the area for north-bound buses. There will be plenty available.
Recommend Che Legarto hostel in Puerto Iguazu, very convenient and they speak great English.
You could take a bus, which will take around 18 hours and cost about 500 pesos. One recommended company is Via Bariloche http://www.viabariloche.com.ar/ You might be able to make reservations on their website (usually difficult or impossible with a foreign credit card), but for buses buying the ticket a day or two in advance is usually sufficient.
Your other options is flying. The two airlines that fly this route are LAN and Aerolineas Argentinas. I would prefer LAN which is a modern well run company.