Pronunciation of Esperanto is extremely easy, there are no exceptions.

Six letters have circumflexes over them. To denote this, I will place a caret before that letter.

Esperanto letter - English example
A - father, never as is ate, man, or cat
B - baby
C - hats, never as in cat
^C - chip
D - do
E - the sound of eight, the length of met, never as in meet or where and never silent
F - fun, never as in of
G - good, never as in George
^G - George
H - hat
^H - no English equivalent, but like a strong H as in German ach, Scottish loch, or Russian Mikhail
I - the sound of meet, the length of bit, never as in bite
J - young, never as in jump (think German)
^J - azure (think French)
K - kiss, never silent
L - leap, as opposed to bell (this L has a darker sound)
M - met
N - net
O - vote, never as in bottom or ought
P - pet
R - no English equivalent, but similar to a Spanish R as in areba*
S - soon, never as in beds or sure
^S - bush
T - top
U - the sound of boot, the length of put, never as in but or cute
^U - week
V - van
Z - zoo

Do your best to pronounce p, t, and k without a puff of air, but don't worry if you have trouble doing this, it is not crucial.

NG - finger, never as in singer or ingest
AJ - bide
EJ - eight
OJ - oil
UJ - week, ruin, or better yet, to yield or boo-yeah
A^U - how

All juxtapositions of vowels, such as IE, must be pronounced as two seperate sounds, e.g. kie is pronounced "key-ay", never "kee".

ER, IR, and UR should never be pronounced as English her, girl, or spur. Both the vowel and the R should be distinct sounds.

You might find the letter X in some texts. This is used to denote that the preceding letter should have a circumflex over it, as I did with the carets. Some older texts use the letter H for this same purpose (in keeping with western tradition); this is clearly the wrong thing. Please do not use this method!

* Esperanto requires a tap or flap rather than a Spanish trill. A lot of Americans think thay can't do this, but most do all the time: say the word "butter" somewhat quickly. If it comes out like "buddr", then the "ddr" is probably the sound you want for the Esperanto R. If it comes out like "butt-err", then congratulations, you pronounce English well!

Thanks to many helpful noders pointing out that E2 doesn't support tables, and for not downvoting me while I was sleeping! (I wrote the original at 12:30 at night, for lack of anything better to do!) Thanks also to Gritchka for some corrections on the examples I was using.