This really doesn't need three answers, but it couldn't hurt to elaborate more on a pretty critical aspect of team building.
Synergy is how well your Pokemon work together. Each Pokemon plays off each others strengths and weaknesses. There are two main types of synergy: offensive synergy and defensive synergy. Pokemon have offensive synergy when, while together, they can hit most Pokemon for strong neutral or super-effective damage. Pokemon have defensive synergy when, while together, they don't share vulnerabilities to any one type and force the opponent to use single target attacks to deal with them.
Achieving synergy is simple: Look at your Pokemon of choice, look at its weaknesses both in terms of type weaknesses and vulnerabilities to specific Pokemon, and look for a Pokemon that can deal with those weaknesses while your first Pokemon does so for it. A good example would be a core like Metagross and Rotom-W: Metagross can deal strong physical hits to Pokemon like Amoonguss that Rotom-W dislikes while Rotom-W can fry bulky waters for Metagross. Between the two of them, they share no weaknesses; infact, each of their weaknesses is a resistance or immunity for the other. Additionally, they're not very vulnerable to any particular spread moves.
As for the middle ground, it's not too difficult to find Pokemon with great offensive or defensive synergy that happen to share okay synergy on the other side. Sticking Hitmontop with anything that appreciates Fighting-type coverage will usually make a nice core with good offensive and moderate defensive synergy. Some cores, particularly ones involving Steel-types like Metagross, Scizor, and Heatran, can have phenomenal synergy on both sides of the spectrum.
Muffinhead has uploaded a series of tutorials on team building and the basics of VGC. In this particular video, he gives a pretty solid introduction to synergy and some decent examples. I'd recommend checking it out (and the rest of his videos too since muffinhead is amazing).
[youtube]zjLrN5U_fvg[/youtube]