I've used Navigon, Co-Pilot and Sygic and they're all good but prefer Google Nav. The voice directions are more precise (it says exactly the exit to take, speaks the road/junction name and/or number and tells you which bearing to keep at a fork among other things. That and combined with integrated street view it made finding a lot of venues and houses easier for me. Obviously other people's requirements and uses might be different.
The voice is slightly robotic but it's very easy to understand after you've used it a while.
Google Navigation uses little (or none at all) data. It caches the entire root including any possible wrong turns when you first punch in the destination and set the nav up from the starting opint (where you will likely be on WiFi anyway) and even if it does use data (traffic updates, lattitude etc) it's always a very small amount of data.
Mapping data isn't huge either, it's all vector based and on a 200 mile drive the last time I checked I used maybe 10MB of data but I had background app sync on so that was probably all of that combined.