Google maps will pre-cache the map around your route, so you could queue it up with wifi connection, then take it to the car and be on your way.
Additionally, Google Maps allows you to download map areas for offline use, however, it will only download a 10 mile radius around a specific locations, so you'd have to download many individual locations independently to create a larger map. You cannot download the entire state, or US map at once. I don't know if there is a limit to the number of locations you can download the surrounding map for.. I currently have 4 cached to cover all of central CT.
to enable this functionality:
Google Maps -> settings -> labs -> enable pre-cache map area -> return to maps -> long press on a location -> touch the address bubble that appears -> select pre-cache map area.
To remove cached locations. Google maps -> settings -> cache settings -> Clear map tile cache (delete all) OR pre-cached map areas -> delete individually
There are apps available that allow for downloading of maps.
Mapquest is free, but I don't know if it supports map dl
Other paid apps certainly do though, like CoPilot live