I've just tested out Navit. Here's what you do:
1) Download and install navit. (duh, but this is the hardest step. Whether you install from precompiled repository or build from source, all the instructions are on the wiki)
2) Go to http://maps.navit-project.org/download/
3) Navigate to the place you want, draging the map and double clicking to zoom in (or using the icons)
4) Change control to "Select" and draw a box around the area you want
5) Hit export to save that map data.
6) Modify the navit.xml file (wherever it was installed to) to point to your exported map data
voila!
no GPS data since I don't have a GPS, but the maps there. You may also have to change the default starting location. I just did a search (the "destination" button) for the city I downloaded and it took me right there. I could then zoom in on the streets, see street lights and parking and food joints... and bus stops, cool. That icon is hospital, good to know. That's a coffee shop. Gas station right beside the church, I know that place.
Yup, everything seems to be working perfectly. I imagine it'd work even better with GPS data, if I could just figure out a way to create some dummy data daemon to play with.
The software that uses images is Garmin. Don't use Garmin maps. They're crap, and I have no idea how Garmin got to be such a huge leader in the GPS field, and I'm certainly not bitter in any way.