I snorkeled there last May. There's not really any snorkeling near the city itself, but if you take the colectivo south about 20 miles to Akumal, there's some nice snorkeling with a good chance of seeing turtles. Colectivo is a large van that seats about 14 people and costs only $2 (no tip necessary).
You can also take the ferry to Cozumel, then a cab ride south to Playa Corona or Dzul Ha (also called Money Bar I think). Both have good snorkeling with excellent visibility. Saw a couple of queen triggers and some French angels at Playa Corona.
I'm not a diver, but I know Palancar on Cozumel (southwest side of island) is regarded as good diving.