Ahmadinejad was cheating. he was never president .
elections are not free: the process can not be accessed by candidates AND Khamenei indirectly chooses who can be candidate. that's why no real reformist was candidate .
Khamenei having too much power. it is totally not democratic.
i know some guys in Iran take profit of all this and everyone criticizing it is "non iranian" but "living outside"
in Iran it is not possible to criticize so we can do it outside .
Ahmedinejad was not cheating. Surveys (both Iranians & non-Iranians) before & after the election showed a trend that was extremely close to actual numbers. Eric Brill has a written a very comprehensive report on the elections which you should read. As middle easterns, we are so quick to jump to conclusions & base our opinions on our immediate surroundings without much regard to data. As emotional people, we need to be more unbiased to come to better conclusions, even conclusions we don't like.
Regarding second point, which is oft repeated but incorrect. Iran's democracy system is not exactly like west. It has it's own unique system that is home-grown. This is why the country has been surprisingly stable since the revolution unlike other democratic systems in Asia with their constant a coup d'état. First of all, Iran has many different elections. It's not just a President election every four years. It's the Majlis elections, it's the Assembly of Experts elections, and, I would say the most important to many people in smaller towns, City & Village elections. Every city or village has an election every four years to elect a council which then, in turn, elects a mayor to run the city among other functions. Go to any small town and see how important these are for them.
These local elections are never discussed much in the western media, nor do the Tehranis know much about it, because in a city of 14 million population, maybe city council becomes very impersonal, but in other cities, local elections gives each townsman or villager a feeling of empowerment.
Aside from this, our country is usually attacked for vetting candidates, even though this happens in different ways in every country. It's clear that in USA, that candidates have to be part of the political system & the status quo, to have any hope of ever becoming a president. A candidate that is too radical or too different from the status quo will never have a chance to reach any significant place. At the end of the day, due to the way the system is laid down, voters generally have two choices, the candidate chosen by the Democrats or Republicans. If this was true in Iran, our country would have been attacked for having a Two-Party Dictatorship.
Also, in USA, it is an electoral voting system, meaning that there is no popular voting system. In 2000, George Bush won the election, even though Al Gore had more popular votes, meaning that more individuals voted for Al Gore than Bush, however because Bush had more electoral votes, he won. If we had this system, while US did not, our presidents would have been called illegitimate. In Iran, as we have a popular vote, it means that any individual Iranian, no matter which city he lives in, has the exact same voting voice as any other Iranian. This obviously is not true in USA.
Now, let's move on towards UK. Who voted for Cameron or Tony Blair? No one. They instead vote for the party, who then chooses their man themselves. Again, because Iran had UK's system, and UK had a different system. They would have called it an illegitimate system because the people did not directly vote for the Prime Minister.
As you can see, there are many different styles of elections. France is different than USA which is different from UK. There is no reason why ours should be illegitimate just because we did not copy it word for word from any of these western countries.