There are a bunch of apps that will do this. Vlingo, Voice Actions have it as part of their larger feature set. Motospeak will do it when connected to Bluetooth (does not need to be a Moto phone or a Moto Bluetooth device). I am sure there are others, these are just ones that I have tried.
I am looking for one that will read my Google Voice messages (both texts and transcribed emails) when connected to Bluetooth. Haven't found one yet, but I am suggesting it to the author of Voice Actions since he is pretty responsive to recommendations.