Mahogany Town
Not very much is actually happening in Mahogany Town. You can't get inside the gym, and the route east is blocked by a man trying to sell you a Rage Candy Bar. The town does have a Pokecenter where you can heal weary Pokemon, and a Poke Mart with little on the shelves. A lot of people are talking about a Gyarados, however, who has been spotted north of Mahogany Town.
Lake of Rage
Travel north on Route 43. Along the way, you'll find some items, battle some trainers and can fish for Pokemon if you have a rod. Eventually you'll reach the Lake of Rage, into which you must jump with a Pokemon to whom you've taught the surf ability. At the south end of the lake, you'll find a red Gyarados (they are commonly blue). Approach this Pokemon and engage it in battle, during which you can attempt to capture it. Defeating it ends the talk in Mahogany Town.
Team Rocket Headquarters
When you leave the Lake of Rage, a man named Lance asks for your help investigating a mystery back in Mahogany Town. Follow him back there and speak to him again in one of the houses. You'll find out that the house contains a secret entrance into Team Rocket's Headquarters. You must navigate through the fortress, battling more than a dozen trainers and scientists on your way to the top floor, where you must beat Team Rocket executives and shut down a machine, then get HM05 from Lance -- an item that contains the whirlpool ability you can teach to some Pokemon.
Mahogany Town Gym
Once you complete all the tasks, the man blocking the entrance to the gym leaves and you can enter. The gym itself has some ice-themed puzzles you must solve to move from one room to another. Along the way you'll meet and battle with some trainers who have ice- and water-based Pokemon. At the end of the gym is Gym Leader Pryce. Defeat him and he'll give you the Glacier Badge.