I usually just use the Purify Chamber, but in Colo I used Pyrite Town and fought at the Duel Square, which is kinda a wierd name because it's actually a circle.
I used to use the the Purification Chamber in XD, but it just got boring after a while. So now I lower the Heart Gauge at Mt. Battle, Duel Square or any other place where there's Pokemon who's levels are close to level of the Shadow Pokemon I'm purifying.
I use Purification Chamber and place a few Pokemon there. I take about one or two with me in the party. I battle, etc. etc. and when they're about to get purified, I go to Agate. I purified all of them quickly XD
At the begining of the game I purified the pokemon at the HQ lab then I went to HQ lab to purify but I had to catch a few pokemon before I could even start.
In XD, I normally use the Purification Chamber (before that I would either leave the ones I didn't want in the PC and the ones I wanted in my party). In Colosseum, Mt. Battle.
There's a place in Colosseum just as you enter Agate where you can have Wes wedge himself between the path and the "game wall" were he keeps walking, but doesn't get anywhere. You have to do some crap about unplugging your controller or summat like that to do it, but you can leave the game and the heart gauges will go down while Wes 'walks'.
On colosseum and Xd, I used to just take a shadow pokemon to mount battle area 1 and have them fight easy pokemon to lower their heart gauges. Sometimes, I would train them in Duel "Square" in Pyrite Town, or in the colosseums, then go to Agate (Since i don't like the purification chamber) to purify them using the Relic stone thingy.