I would love a decent app for Android too. I've tried mapdroyd - the maps are pretty low resolution, and the gps tracking is very poor. I've downloaded locus free, and the UI is so bad (or I am so stupid -- either are quite possible) that I have no idea how to use it.
My solution is that with google maps, one can load an entire city in the cache when online. I just go to city of choice, zoom in to highest resolution all the areas I'm interested in, and then use the map offline. It can get a bit buggy, and requires switching phone off/on, but otherwise fine. No directions, however. Of course, the major limitation is that this works for only one city at a time.
tb