This may sound unorthodox to some, but sometimes I train on the league itself to prepare for the league (if I'm not doing a Nuzlocke Challenge, anyways). I'll use all of my money to buy Revives+Full Restores or Max Potions, then fight the league over and over to train my pokemon. Even when all my pokemon faint, they've still gained experience from fighting the league's pokemon, plus I've gained some more cash to buy more Revives+Full Restores or Max Potions; since I already spent all of my money, the only money I have to lose is the money I gain from the league members I'm able to beat, and even then I only lose half the money ^_^
I only start training on the league after I've trained on Victory Road, and it starts taking a while for my pokemon to gain levels.