I try to train all my pokemon to the same level, which takes time and can get very boring... :sleeping:
I try to train my starter up to lvl10 or above at first, and then, as I catch pokemon I want, I use bait and switch until the pokemon I'm focused on is strong enough to battle by itself. As I go deeper into the game, Exp share comes into play especially if I want to level up a new pokemon quickly, or lvl up a straggler in the team. By using exp share and the bait and switch technique,a pokemon can grab 75% of the exp points going.
Once I've got my team, I try to train each one up so many levels i.e at the moment, in Crystal, I've got Suicune at lvl43, Gyarados at lvl44, Haunter at lvl 45, and Typhlosion at lvl 43. I'll train each in turn until they're all @45, then start again, aiming for lvl50...
This is all whilst I'm still aiming for the elite 4: once I've beaten them, I'll start using them to train up, as well ashunting down any trainers who might want to battle again. Very occasionally, when I'm out of trainers, I'll use wild pokemon, but they don't give as many exp. points and training using them can be tedious in the extreme.