The opinion polls referenced by Bhaskara are consistent with the results -- a 2:1 margin. And contra Cole, those polls indicated more support for Ahmadinejad than Mousavi amongst Azeris.
Anywhere, here's Azar Nafisi (of "Reading Lolita...") on al-Jazeera: http://english.aljazeera.net/news/middleeast/2009/06/2009613181040285185.html
and a report on the protests in Teheran by Teymoor Nabili: http://english.aljazeera.net/news/middleeast/2009/06/2009613172130303995.html
Note that the protests were apparently in northern Teheran, not elsewhere, although, as they also note, there has been a clamp-down on telecommunications, preventing SMS and other means of quickly mobilising and coordinating protests.
al-Jazeera's pre-election coverage indicated (i) that Ahmadinejad would likely get more votes than Mousavi, given his support from the rural areas and the urban poor (shades of Thailand), but (ii) there was a real possibility he wouldn't make a majority outright, leading to a 2nd round run-off.
The suggestion is that there may well have been fraud at the margins -- something that should be familiar to most electoral systems -- but not exactly theft. al-J's coverage suggested they were leaning Mousavi.
The images on al-J TV of Ahmadinejad's Teheran supporters coming out in early celebration showed a mixed crowd -- if one can judge by dress and demeanour.
kj