There is an entire discussion list devoted to voice recognition/transcription on the Macintosh:
MacVoice
http://listserver.themacintoshguy.com/mailman/listinfo/macvoice
(I have an interest in this topic because I'm the head of a huge user group for Mac-using attorneys, and many attorneys prefer to dictate rather than type their work. So I answer questions about this all the time.)
Several users on the MacVoice discussion list report that they are using Dragon Dictate running under Windows in virtualization on their Macs with no problem.
MacSpeech came out with MacSpeech Dictate (using the Dragon recognition engine) about a year and a half ago.
http://www.macspeech.com
http://atmac.org/macspeech-dictate-is-highly-recommended/
The performance was great, but it wasn't feature-complete because it was rushed to market. This caused quite a bit of hard feelings among some users. I don't know if MacSpeech Dictate has feature-parity with Dragon yet, but I do know that they released an update to the product just this past week, and it is now reportedly a very useable product.
http://www.macspeech.com/article_info.php?articles_id=321
If you decide that you want to run Dragon/Win on your Macintosh, you will need a virtualization program (Bootcamp, Parallels or Fusion), a copy of Windows, and an Intel-based Macintosh.
The good news is that there is a dynamite deal going on right now for Parallels that includes a bunch of other nice software as a package deal:
Parallels, by itself, is usually $80. Here it is bundled with a bunch of other software for only $50:
http://www.mupromo.com/deal/852/5801/bundle
Finally, I should point out that no matter which dictation/transcription solution you go for, there is always a fair amount of both luck and work involved in getting the product to work acceptably for you.
It takes 'luck' in that you will only get good results if your voice and style of speech matches the model in the program well. If they don't, then you will probably never get that particular program to work well for you.
It takes 'work' in that the program will only attain a very high level of recognition accuracy if you constantly train and re-train it by correcting errors as they occur. (Note that even if the program achieves a 97% accuracy, that there will still be three errors for every 100 words that you dictate. Even worse, those three errors will be hard to pick up, because the program uses a dictionary for its guesses, so its not like they will be misspellings that can be caught with a spell-checker. You will have to carefully proof what you have written to catch them.)
I hope this helps.