I try to pick a pokemon thats good for every type situation by picking a lot of double types. I try to pick my favorites, but depending on the game i just pick whichever is best. for example, a good ruby/sapphire team (i say that cause i havnt played d/p yet) would be; Tropius, Medicham, Walrien, Camerupt, Magniton, and Armaldo. That way you have water, grass, fire, electric, ground, steal, phychic, fighting, flying, ice, rock, and bug; all in one team. Then you just take out whatever can destroy or defend the best in the situation.
Otherwise i try to pick my favorites, but thats kinda hard, cause my dream team stretches from rby to rse, and not all are available in each game.