My Rayquaza knows Ice Beam, Thunderbolt, Crunch, and Earthquake. It tears through the Elite 4 without having to switch out to any Pokemon, and can kill any of the Elite 4 in one hit without running out of PP before it's all over.
I suggest using that or a simular setup, and put Amulet Coin on the Pokemon you use of course.
Also a way to speed up the process is to go to the game options and turn the battle animation off, then turn it from "shift" to "set" so that it doesn't ask you if you want to change to another Pokemon every time you defeat someone. Turning off the battle animation is very helpful on speed.
One more thing, when you defeat the Elite 4, you don't have to wait for the credits to go by. You just hold down A+B+Select+Start (make sure you do this AFTER you're entered into the Hall of Fame, I suggest doing it when the credits start to play) and it will restart the game as if you turned the game boy off and back on.
Doing all of this can get you 999,999 in fairly short time.. you get around 50,000 each time you beat the Elite 4 with an Amulet Coin. At least in Ruby/Sapphire you do, I haven't checked for FireRed/LeafGreen yet.
And while you're doing all of that, you can put an Exp Share on a Pokemon and be leveling something up at the same time (if you don't care what Effort Value it gets)
Update: In FireRed/LeafGreen there is someone named LADY JACKI that you get 20,000 money for every time you beat her. She's on Island 5 in the Resort Gorgeous. Just leave Island 5 heading north into the Water Labrynth then take a right. Lady Jacki is on the second island you'll see. Just defeat her, then run around until your Versus Seeker is charged, then do it again. Rinse and repeat...