I prefer subs under most circumstances for a variety of reasons:
A lot of things have never been officially imported, so you need to rely on fan translations; a lot of fans know both languages well so they get the translation right, but very few will even attempt dubbing and those who do typically aren't voice actors.
A lot of the things that have been imported were translated by some huge company that doesn't give a damn and doesn't understand anime anyway, so their translations tend to be crap even if they don't bowlderize the whole thing or cut it to shreds, so I end up going back to the fan translations; see above.
A lot of the voice actors for dubbing just aren't very good at it, leading to annoyance, distraction, etc.
If I'm just listening without anything else to follow on, I occasionally hear the wrong words, miss part of a line, whatever, especially if there are other people talking nearby or other distractions (or the voice actor is bad at their job), so even in english shows I tend to keep the subtitles on if I have the option. But most of the time a sub and a dub will use slightly different translations, and the disconnect between what I see and what I hear screws things up further.
A lot of jokes, dramatic lines, etc. sound great in the japanese, still work in printed words, but just fall flat when you say them out loud in english. So even a good dub, unless they went so far as to come up with something similarly dramatic/funny in english with a similar meaning (which typically goes horribly wrong), will just sound dumb at times.
That said, there are some great dubs out there, and I don't really mind watching the dub if it's decent, but as a general rule I'll look for a sub first.