I went with Puerto Vallarta. Split my stay between the Westin in Marina Vallarta, which I got on Priceline for $50 a night, and an inexpensive B&B in the Zona Romantica. In the course of my research, I realized that neither of these are where the best beaches are, south of town toward Mismaloya, but the best beaches can easily be gotten to by bus or taxi, and I felt that proximity to dining options and nightlife was more important.