My experience with Android's STT:
Accents: Supposedly it works well for US english. I don't speak US english. Trying to force it usually works worse than when I had to force myself to speak Finland-Swedish for my old Nokia phones.
Punctuation: It's really annoying to have to say "dot" or "comma" all the time, and it often seems to get it wrong anyway.
Vocabulary: When messaging I rarely only use "common" words. Gaming stuff gets garbled (I just tried, and it interpreted "raid at 8" as "Friday 8"), and band names or tech-related stuff doesn't fare much better. Bonus points if it's a weird spelling or international name. Good luck getting it to recognize Movits!, Dimaa, or Nekrogoblikon, you'll need it.
Correction: I often say the bad thing, especially when under pressure from the STT timeout. AFAIK there is no way to have it delete the last N words.
Multiple languages: I switch between Swedish and English often enough that I usually forget to switch keyboard. For a keyboard this means getting wrong autocorrections, for voice input this means getting garbage. I know Android STT supports selecting multiple languages, but then it gets confused and switches back and forth all the time.
At this point, I basically only use the voice input for setting bed/egg timers with Google Now. I would use it for navigation home/to work, but I don't have a car and Maps' bike instructions are awful.