I'm a US citizen and visited Iran about 2 years ago and had no major problems getting a visa (used a YVR-based travel agent to expedite the processing -- the Iranian embassy in Ottawa issued the visa). Used UA MP mileage to fly LH, FRA-THR-FRA. My inbound UA flight to FRA was delayed, so I missed the LH flight by 2 minutes -- UA ended up endorsing my ticket over to Iran Air, which had pretty nice service FRA-THR (A340 with Airshow, etc.)
Can't say enough nice things about travel within Iran. Go now!