Bing maps has some interesting layers that Google doesn't have (1:25,000 Ordnance Survey maps and Collins Bartholomew London Street Maps, for example, thanks to Multimap), but some (Enhanced Birdseye, Streetside, Photosynth) are only accessible using Silverlight.
v3 of Google's Maps API should run faster & better on mobile devices, but StreetView still needs v2.
Ordnance Survey's own map API is currently limited by only providing 1:50,000 scale OS maps, but once the OS data gets properly opened up later this year it should be very interesting. Uses OS grid co-ordinates rather than lat/lon, but there's a function provided for converting between them.
Custom-styled map tiles from OpenStreetMap data - good for small details like footpaths at close range (dependent on the level of mapping that's been done). iPhone SDK; Mobile SDK; Vector Maps. Also provides an interface to other OpenStreetMap projects like OpenCycleMap.
Mapstraction could be a good way to bridge all these providers, but it seems to be in the middle of a rewrite and ends up being harder than using the map APIs individually if you want to use their newest, unique features.
OpenLayers makes it easy to add map layers from different providers in a single framework, including Google, Yahoo and Bing. Uses (lon, lat) rather than (lat, lon). OpenLayers is also ideal for working with the many map services that use the WMS (Web Map Service) standard.
I used a little PHP framework to make experimenting with new maps easier - it's in GitHub. To add a new map, just clone one of the existing folders and edit 'index.php' (sets the page title and the scripts to include) and 'map.js' (generates the map). It's being used for the demos linked from this page.