Well, it comes down to personal preference, really. Aside from the very high level legendaries you can catch, there's no magic group of pokemon that will get you through the game with minimal effort. There are two good guidelines though.
1) A good balance of types
2) Leveling, leveling, leveling.
Getting a balance of types is pretty easy. You just want to get 6 pokemon, such that you won't end up in a situation where one poke type counters half your team. For example, my old gold team was
and one more I can't remember right now. (Oh well, you get the point.)
The other thing you need to do is level. Not just what you'd get from fighting every trainer, and leveling a team of 6 pokemon from that, I mean running around in the grass for hours to level. A good baseline would be lvl 10 for the first gym, and another 5 levels for every gym leader after that. If you do that, your party should be about on par with most of the trainers you come across.
Sadly, that won't be enough for the elite 4. IIRC, some of the champion's pokemon are in the 60's level wise, and although you can abuse type advantage, that won't make up for a 15 level difference. You have two choices at this point.
1) Spend more hours leveling up until you can beat them.
2) Catch Rayquaza, and curb stomp them with a level 70 legendary.
I picked the latter. MUCH faster. ;)
One last thing, make sure you evolve your pokemon, as it improves their stats drastically. Additionally, trained pokemon are actually a good deal more powerful than wild pokemon, even if the wild one is a few levels higher. The reason for this is somewhat convulted, but basically as you level up your pokemon manually, their stats will improve based on the pokemon they fought, in addition to the normal level up bonus. However, you don't need to worry about the mechanics behind it (unless you plan to play competitively, in which case you'd need more help then I could give you.)
Hope all of this helps.