There's OpenLayers too (http://openlayers.org/). Google Maps or Bing Maps are one of the possible layers. Works well for GIS-type folks, has some quirks otherwise. Don't like the layer switcher myself however, not very strong UX wise.
Yeah, using OpenLayers here too-- I was about to say almost the exact same thing. My PM is one of those GIS-type folks; I'm not, and there's some frequent pain. I've actually been messing with layer switching this morning, we have our own control UI for it. The native OL controls are generally pretty lame (especially compared to GMaps). We're progressively throwing out most of them, opting for a different direction that fits more with our filtering/search features.
Code-wise, I've found OL pretty awkward. It stinks of Java to me: over-organization, unnecessary complication in the name of feature completeness, confusing function sigs, overuse of `new`, etc. Feature-wise, I have little to complain about, but GMaps.js's look a lot more idiomatic and nicer to write code against, though I bet there's still comparatively a lot missing...