High season (aka dry season) is December through April; the resorts are most crowded and expensive during this time. If you don't mind afternoon showers, temperatures in the 80s and 90s F (high 20s and 30s C), and high humidity, rainy season (late June through October) is a great time to visit. Hotel rates drop by as much as 40%, and there aren't any crowds.
Summer sees the best diving, snorkeling, and surfing conditions. By August the coast and inland forests are green and bursting with blooms. Afternoon rains clean the streets; waterfalls and rivers outside of town spring into action. On the downside, heat and humidity are high, some businesses close shop in the hottest months (August and September), and nightlife slacks off.