This is great app specially for drivers. It speaks out the caller name or SMS messages as soon you get them. It is completely hands free. It can also be configured to read out full SMS messages the moment they arrive. All you have to do is configure the app once and then it works as soon as you receive a call or sms.
The caller must be in your contacts for the app to speak caller name, otherwise it speaks it out as unknown caller or says the number. This is a paid version and does not impose any limitations.