I'm not going to lie. I am very specific about my Pokemon team. I have tried to play through a game using different techniques, but I have always failed. I figured out the specifics and they worked, so I've used them since the very beginning.
First of all, I have to have a Pokemon of the following types on my team:
Fire
Water
Electric
Grass
Psychic
I used to insist on having a flying type, but only for the move fly. I stopped that trend, though, because I don't care much for the flying types. So, now, I have a sixth spot open. Which I fill with a Pokemon that I like. The sixth Pokemon will always be a varying type, but will always be dual type. This way, they have an advantage over a variety of Pokemon.
One of my Pokemon will always know a Dark move. I don't like Dark types, so one would probably never be on my team. But I like having an advantage over psychic types, too. So, Bite or Crunch will be there.
I never have Bug, Ghost, or Dark types. Rarely have Normal types.
At least one of my Pokemon must know Solar Beam, Hyper Beam, Hydro Pump, or Fire Blast by the end of the game. I prefer to have a Pokemon for each move.
Whenever possible, I will always have an Eeveelution on my team. However, if that is not possible, I obviously won't.
My water type will always know Surf.
I like each of my Pokemon to have a variety of moves. Usually, they will know two moves that match their type (for the STAB) and two other moves. If they are dual type, the two other moves will match their secondary type, if not, the two moves will be chosen carefully so that I will have an advantage over a type that none of my Pokemon would otherwise have that advantage over. Of course, I can only do this when possible, but it bugs me when I can't.
And I think that's about it. That's all I can think of at the moment, anyway. Oh... all my Pokemon must be evolved, too. I don't like not evolving my Pokemon. Something bugs me about it. xD