Google Maps on Android at least allows downloading maps for offline use. I've used it lots of time when traveling and it works great.
The only slight downside is there is a limit to how big a single downloaded map can be. So if you want to download all of Europe you have download it as a whole bunch of smaller maps and switch between them rather than a single big map, but realistically I've never run into problems with the size limitation