Q. How to cache large map area
Let say we need to cache NYC area.
Select Menu->Cache Area.
Zoom in and position on the screen area that will be cached. Here it's zoom 11 which covers city I need plus surrounding area. It's a little overkill if my interest is only Manhattan Island, but let's try it.
Select Menu->Cache Area.
Dialog with zoom level selection will pop-up. Items in list showing available deepness for caching. It should be read "up to". Like "cache all zoom levels up to zoom 15" for instance. Tap on level and watch queued for cache tiles counter increase in up-left corner of the screen. This number will count down as caching is progressing. Caching of 5 zoom levels (11 to 15) is quite a lot of tiles. In this example it's more than 3000 images of size 256x256 pixels to transfer over the wire.
Q. How to cache international vacation trip
As an example I would use trip to Greece. Let's presume it's a vacation trip. Vacati
on would last about 5 days and we know list of cities we are visiting. First of all, entire Greece needs to be cached at least to zoom level 11. It seems that openstreetmap.org is not covering this particular country that well, so switching to Google Map makes big sense (Menu->More->Select Map->Google Map). Even on Google Map tiles Greece doesn't look very dense in terms of geographical data, level 11 would at least give feeling that we are not missing something. Now, caching from level 7 (which make all the Greece visible) to level 11, would fetch quite a bit of tiles that are just a plain sea. This shouldn't be of a big concern. Those tiles are ending up in a tiny files on SD card.

When caching is done (around 3000 tiles) it's a good idea now to check which cities are going to be visited in this trip. For example we are staying in Athina and having short trip to Tripoli.
In Athina streets are very narrow and usual city zoom 15 would not give enough coverage. For Athina we are going to cache to zoom 16. Center map at Athina on zoom 11 and select Cache area->Level 16
Q. How to clear cache?
There is no functionality in Maps (-/+) that lets map tiles to be cleared from the phone.
Map tiles are stored as usual files in sdcard, it's possible to use any file manager to remove appropriate folder with entire map or just some zoom levels.
Since version 2.6, map sources can be added/deleted and kept in any combination. One could create separate map source to cache certain country (travel destination) and specify folder for cache. Later this folder could be removed when not needed. (I prefer to keep all cache)
There is no harm in deleting cache folders from sdcard. Any missing folder will be recreated as needed at application runtime.
Q. How to download tiles with the PC?
A. There are multiple independent projects that are dealing with desktop tiles download. http://mobac.sourceforge.net/ is one of them that I looked in to when researching the question. It seems that author of this software had his own deal of pain dealing with commercial tile providers and all the proprietary map sources are disabled now.
As far as I know, mass tile download is also hurts free OSM servers especially for tiles at zooms 16 - 18. Those are not pre-created and are generated "on demand".
As far as "fair use" going, Maps (-) was doing pretty good job at dealing gently with tile servers.
Q. Why Open Cycle Map "Cache area" menu option is disabled
A. This question is a reoccurring one. The truth is, OCM servers are owned by private person and I'm been contacted by the owner to disable recursive caching as it produces unexpected load to his servers. Option is disabled but one could still cache OCM tiles (which are gorgeous :)) by browsing interesting region (zoom/pan). All the tiles that displayed on screen are cached.
Q. How to add other map source
A. Maps (- and +) app supports flexible map source configuration. Go to menu->Preferences->Configure maps for list of available maps. There is a way to add source to this list and configure for custom tile server.
Other way to add map source is to import configuration from file.
Menu->Load from file.
This import supports files in JSON format. For example, Open Street Map would have next configuration:
{
"maps" :
[
{
"title" : "Open Street Map",
"cache" : "/sdcard/coderminus.maps/osm/",
"function": "{z}/{x}/{y}.png",
"servers" : [
{"url": "http://a.tile.openstreetmap.org/"},
{"url": "http://b.tile.openstreetmap.org/"},
{"url": "http://c.tile.openstreetmap.org/"}
]
}
]
}