Take a look at the solution at:
http://www.mapdotnet.com/index.php/developers-center/easyblog/entry/offline-support-for-rim-html5-mapping
On this page there is a link to a Visual Studio 2012 project you can download which provides offline mapping support for Windows 8 - but since it uses Phonegap, it can also target Windows 8 phone, iOS, android using phonegap build.
The code-base creates a tile quad-tree on the fly when online and saves it to the device file system. When offline, it automatically retrieves the tiles from the file system cache. Bing, Google, Nokia, OSM and MapQuest are supported by the map control used in the sample (see www.mapsjs.com for more information on the map control and JavaScript API).
Given the TOUs for the various content providers, OSM is a good start. I'd also look at MapQuest. You would most likely be in violation of Google's and Bing's TOUs taking their content offline with the above approach.