Whether you need a visa depends on where you are from and where you are travelling to. Citizens of around 60 countries do not need a visa to enter Iran for travelling purposes for various amounts of times.
Most other countries citizens can gain a visa on arrival from most of the major airports in Iran, although for peace of mind they can also apply for visas beforehand. Visas on arrival for most countries only allow for a stay of 15 days. For US and Canadian citizens due to lack of any consular services in Iran, must have prior approval of an itinerary and tour operator before applying for a visa from the Ministry of Foreign Affairs.
Most tour companies will take care of this for you. No citizens of Israel are permitted to travel to Iran. People who have an Israeli stamp in their passport will also be denied entry. All citizens except for Israeli can travel to Kish Island, a popular tourist island, without a visa for up to two weeks.
Since visa requirements are subject to fairly constant change, it is best for everyone to contact Iranian consular or embassies in their own country to find out what is required before entry.
Most visas will be approved in two to three weeks. Most people find it relatively easy if correct information is given. However, it is best to allow for plenty of time before applying.