I went on holidays to the Yucatan in Mexico over this past Christmas and it was spectacular. If you avoid the touristy spots for most of your trip, you'll save a lotof money and probably have a better time anyway.
Merida is a great "home base" from which you can make day trips all over the Yucatan - to Campeche, ruins in Uxmal (much better than Chichen Itza) or elsewhere, you can visit some Cenotes, etc. The locals are very friendly. If you're avoiding tourist areas, though, some basic knowledge of Spanish would definitely be helpful because very few, if any, people can speak English.
If you do that, you might want to finish your trip off with a few days in Playa del Carmen or Cancun, despite how much more expensive it is. By that time, nothing but a beach and a few tequilas (not to mention food which is not tacos) will really hit the spot. It's a great way to finish the trip.
I can't reccommend the Yucatan enough for a Christmas holiday, but yeah, the cost is considerably more at that time of year. I think that's the case anywhere warm with beaches, though.