There are two reasons for requesting the repetition:
- The email address is a key piece of information, without which it may not be possible to complete the transaction (such as a registration process)
- The email address may be a relatively complex string, and a high degree of precision is required for it to be used successfully.

However, these apply equally to a credit card number or card holder name (for example), even though I can't recall a form asking me to repeat those fields. In fact I have mistyped my credit card number on occasion, but the resulting error, or non-confirmation of the transaction, has alerted me to the fact.
The credit card number is a slightly different case, of course, since it is more amenable to parsing and, consequently, error trapping. (Some email address parsing is also possible if the address is not "well formed".)
I find the requirement to repeat the email address patronising and unnecessary. If I really want something and I mis-enter my email address, I am likely to notice I haven't received the service I requested. I don't actually need the sort of hand-holding that a repeated email address implies.
When I run design sessions, and a registration is required, I find that initial designs almost always require the email address to be repeated. When questioned, people generally don't have a rationale other than the fact that it's common practice, and that users "might make a mistake". However, there's seldom any concern about making a mistake with any other information.


Some implementations take the even more patronising approach of disabling the ability to paste the address into the confirmation field.
Amazon and Facebook both require new customers to repeat their email addresses, although Amazon does not do so until the second step (thus keeping the initial form simpler).
Google doesn't require Gmail users to repeat their email addresses (at least in the selection of processes I checked).
It would be very interesting to know what data on user behaviour informs these different approaches. What does Google know that Facebook doesn't (or vice versa)?
I don't have enough data to support my opinion on this, but, for me, being perceived as patronising is likely a poorer outcome than risking the occasional failure due to mis-typing.