Well type variety is very important, dual type Pokemon can give you and edge because they have access to more STAB moves and can cover each other's weakness easier.
A good team in GSC could consist of:

,

and


,

, and


,

, and


,

, and

This is not to say any of these guys are the best in GSC, but just an example of type combinations that result in no two pokemon in the team sharing a weakness.
As for honest suggestions:
Snorlax is awesome, teach him curse and other strong moves like rest and snore.
If legendaries are allowed, Zapdos is a strong Pokemon, and has a type combination that is unique and powerful.
Tyranitar/Dragonite, both of these guys do the same thing, deal but loads of damage and take hits quite well.