The key to putting together a good team is ensure that each player is playing a different Hero type. Not only that but to also make sure each hero has abilities that complements the rest of the team. You will find more often than not that when you get into a team fight situation where everything is equal the team that has the widest variety of unique abilities will be the one that will have the advantage.
There can be various team compositions, but usually a melee fighter, a ranged fighter, and support are a must. There should also be an ADC (attack damage carry), who will guarantee great damage later in the game.