The Hyperbolic Time Chamber is, without a doubt, the best place to train. Your probably asking why they just don't train in there all the time. The room has a set limit (2) of how many times you can go in there. What the room is, is a totally new dimension. The gravity is greater, and the atmosphere is a bit different than Earth's. An entire year inside the room, is equal to approximately only one day in the Earth's time.
Here is a list of all of the people that went in, and about how many times:
Goku- 1 Time and 5 months
Gohan- 1 Time
Piccolo- 1 Time, then Short time with Buu and Gotenks
Vegeta- Twice
Future Trunks- Twice
Young Trunks- Short time to train for Buu
Goten- Short time to train for Buu
Gotenks- Short time fighting Buu
Buu- Short time fighting Gotenks
Krillin- Quickly goes in then out with Goten and Trunks
Goku went in once as a child, but couldn't handle it, so left after only 5 months. He went in again during the Cell Games to train for Cell. Gohan went in only the one time to train for Cell.
Piccolo went in to train for Cell as well. He then went in during the Buu saga so that Gotenks could fight Buu in there. He figured that even if Buu were going to win, he could blow up the door so he would be trapped in that dimension. That ends up happening, but Buu creates a rip in the dimension and gets himself out.
Vegeta and Future Trunks both train in there for Cell. Young Trunks and Goten go in there to perfect their fusion technique, along with getting stronger to fight Buu. They (as in Gotenks) end up having to stay in the room to fight Buu. The only time Krillin ever goes into the room is when he's first getting Goten and Trunks in there. He's in for a brief second or two.