My personal experience has been with the Ramada/ Holiday Inn at the MM100 marina. As mentioned earlier, the reefs are located well off shore, so even a the hotels with beach, the snorkeling will probably disappoint. As the earlier post also mentioned, Pennekamp is the best bet for snorkeling from shore. The Ramada/ Holiday Inn are both decent hotels which are part of a complex that surrounds the marina with several dive operators located in the marina (we use Paradise Charters) They are both reasonable with the Holiday Inn slightly higher. (both have higher rates on Friday and Saturday) I personally like the Ramada a little better because all the rooms have balconies, frigs and free continental breakfast and you can use the Holiday Inn pool and spa facilities.
Watch the travel web sites for specials (orbitz, travelocity) as we were able to book the Ramada for only $45 a night for labor day weekend.