The process is pretty straightforward and completely free and just requires a little patience as it requires creating an atlas, rooting around on your sd card and placing files in specific places.
There are many application in the market which have feature for offline maps or cached maps like google map, rmap, oruxmaps, ublox, locus etc. (these are the maps that i have tested and used by me)
So, here is the guide.
First of all you need one of the above mentioned software installed on your Android phone (all the above apps are free of cost)
Next you need the offline maps and the guide is as follows:
Step 1. You need to download/create offline map and you will need to download Mobile Atlas Creator (also known as MOBAC and it is a free open source software) tool with SQLite library. Java Runtime Environment should be installed on your computer since this software is based on java. ( Google the software to download it )
Step 2. Run Mobile Atlas Creator and from the drop-down box in the left upper corner of the screen select map provider.
Step 3. Using the mouse select the area you want. You can zoom in and out using the scroll button.
Step 4. Choose zoom levels for you offline map. Please note that creating maps of a large area with high resolution will result creating data file several gigabytes in size.
Step 5. Enter a name of your map and click “Add selection” button.
Step 6. Select the desired format from “Atlas settings” drop-box.
Step 7. Press “Create atlas” button and the download of the maps will begin and be quite patient because it might take time depending upon your internet download speed.
Hurry you are half way done with the offline maps.
Step 8. Once completed, open the folder with your atlas file. Copy the file on your Android device to /sdcard/"your app folder"/maps folder.
Step 9. Open the android application and press Menu button and goto settings and select the user defined map i.e. the one you placed on your sdcard.
How to save Google maps for offline use on android and you can save your bucks
Enable the Google Maps Labs Map Pre-caching:
1. Open Google Maps android app.
2. Press Menu button->More->Labs->Precache map area.
3. Now when you search for a location, click on the map label that appears.
4. In the location view, press Menu.
5. Press Precache map area.
This can be used to view 10 miles around the selected area (offline).
Here you go. All is set and you are good to go. (Note: The first start up might take time but the consequence will not)