I like to have a mixed team, so I just think of the types that have common advantages with the gym leaders and Elite Four and go from there. I must always have a water-type and normal-type, though, so I usually pick Marill and Sentret (respectfully) for that.
Usually, I just catch high-leveled Pokemon in grass or water than pit them against other wild ones. I use TMs to vary their movepools to the point where everything has a high attack point, and everything has a different type.
I used to have a straight forward system were I caught my favourite Pokes and made a team that was synergetically good.
But now I'm more unorthodox like Ash, I still catch Pokemon that are my favourite and try to find good synergy.
But I'm more unorthodox in the sense that I don't plan my team, I can catch anything and I try to use Pokes I haven't used before..
I don't really give it much thought to be honest. I usually try to cover as many types as possible, and sometimes I just add Pokemon that I really like. I always use my Starter Pokemon though. That never changes. I probably should think about my teams more carefully; it would probably save me a lot of hassle.
I choose the Pokémon based on their designs, stats and type.
But the most important aspect is the design.
The thing is, you will never see me using a boring team like "Fire, Water, Grass, Flying and two other randoms". Meh. I don't care much about about balancing the team and stuff, you can pretty much finish any Pokémon game without worrying about this. I always have Ghost and Steel Pokémon on my team, also.
In this gen it is by catching and raising... then choosing the best ones. I once decided to make a "proper team" but gave up half way through ev'ing an aerodactyl. But actually creating a team i do by starting with one pokemon or a solid pair then building it up on what other pokemon i cant counter with that one and then working on strengths and weaknesses.
I`ve beaten Elite4 in my black with Staraptor, Ludicolo, Swampert, Venusaur, Galvantula and Gengar
When I staarted my wi-fi battling, Galvantula, Staraptor, Venusayr were replaced by Azumarill, Cloyster and Ferrothorn
I tend to go for type coverage, but really it changes time to time. Like last time I went on FR, I decided to go with in-game traded Pokemon because I like boosted experience. So I took a look at all the in-game trades you can do and decide which one I want to use. Naturally I went for the ones most diverse with usable stats, so I went with Mr Mime, Nidoking and Dewgong. After designing their movesets, I picked up the starter that could cover the rest of the types that my other Pokemon cannot cover, so I chose Charizard.
Some other times, I picked up the starter first, and worked from that. This was in Platinum btw, but eh. I picked up the remaining teammates who don't share the same weakness as the starter and also whose movesets cover for each other.
As for my recent team, I had a different strategy. I decided based on the exp. points of Pokemon; I only wanted to train those who are in the Medium Fast category or below (100,000 EXP @ L100) so I made a list of Pokemon from that category. Then I went through the usual elimination process; stats and movepool and weakness. The only Pokemon out of the exp. consideration was the starter, but it doesn't really matter since they're Medium Slow anyway (and not Slow or Fluctuating).
Which is one of the reasons why I rarely use pseudo-legends in my team, since they're so late to get and so slow to train >_>
And as of lately, I've been experimenting with Pokemon I've never/rarely used before, like Weezing. It's fun ^.^ And it gives you that Rocket feeling
My team usually gets put together as I play, and if there's type coverage I'm missing I'll grab Pokemon I know are good (example Alakazam and Lapras are both very quality). I always need a surfer, sometimes I'll just use HM slaves for fly. I try to use things I've never used before to mix it up.