As is typically the case in Mexico, the best food was found at the least expensive places filled with locals. Here's a listing of the places we ate:
+ Oasis - on Orion Nte. (right turn on main road at El Mariachi) : outstanding fish dishes, especially the shrimp and squid tacos. To give you an idea of the prices, one of the two nights we ate there we had four beers, beans with cheese, three shrimp tacos, three squid tacos (pulpo) and a fish dish and the total bill was 265 pesos. Read about this place on Chowhound, and some "local" gringos I spoke with had never been. Also, the staff is excellent. Highly recommend.
+ Pastor - on the main road. Excellent tacos al pastor (they serve a few other items, but why bother?). Tacos cost 8 pesos each. Highly recommend.
+ Mezzanine - take the road to the beach and turn left. Wonderful views and OK Thai food with big city prices. Worth eating there once to get out of the taco rut.
+ Buenos Aires Argentinean steak house - on the main road. Nice enough setting and the Arrachera was good, but the prices are a bit steep for the quality. Wouldn't go back.
There's a new gelateria on the main road (I think the name is Cioccolato e Panna, but there is a neon ice cream cone sign) - best gelato I've had in Mexico...not inexpensive though - two scoops on a cone is 40 pesos.
We stayed at Teetotum Hotel and ate breakfast there everyday -- really good fresh food. The smoothies, french toast, huevos rancheros and something as simple as yogurt and granola are all very good. They also serve lunch from 12 to 4pm, but we were never there during that time frame. Have heard that their burgers are the best in town. They plan on starting dinner service soon, once they receive their liquor license.
Most of the restaurants on the beach serve a mediocre version of Mediterranean food at prices way to high given the quality -- great views though...