Recently, I had to implement an offline mapping solution for an iOS application. Here's a walkthrough of how to do it.
I generated a tile database using TileMill. I used the Route-Me iOS library which provides a map view that supports offline tile sources.