Well, I am not an expert of the Generation III, but I think I know a lot about the pokemons up to Generation II. So I usually stick to them, playing Fire Red/Leaf Green/Crystal helps with this :)
But my overall team compositions were usually mixed up. I like to have something for each situation. My favourite ( unfortunately with hacks to the wild pokemon ) was:
1. Heracross - fighting, bug, ground;
2. Houndoom - fire, dark, steel;
3. Ampharos - electric, steel;
4. Slowbro - water, ice, psychic, ghost;
5. Aerodactyl - dragon, rock, flying;
6. Vileplume/Victreebell - grass, poison, fire (sunny day);
It gives me an attack from each type and I can roll :)
By : Memoric :
Usually, I just get pokemon that I like. In my last Emerald run, I had Blaziken, Cacturne, Flygon, Gardevoir, Aggron, and Salamence. I only got Salamence before the E4, so I had only 5 pokemon up to the 8th Gym. I only catch pokemon that I like unless I really need to use some weak HMs (Cut/Flash Slave Nincada, Dive/Rock Smash Slave Marill). But even with just 5, I was freaking beast.
Since this is ingame and not competitive, the only good strategy I use is just SPAM-FOREVER!!!, ala Destiny Red from the Nuzlocke Comic. I also try to avoid having two of the same type since that's just redundant, unless it's Dragon, since they're just too awesome.
I tend to avoid moves that don't have a 100 accuracy. I'm not the type of person who likes to take risks. As an example, I swapped Blaziken's Blaze Kick for Flamethrower, which freaking cost me an 80 grand. Exceptions, of course, is when something needs a move, like me giving Fire Blast to Mence.
Though this team has some flaws, like no Ice-type moves D:, this is the team that brought me through the game, and I'm proud of them.
by - Gardevoir the Dragon Slayer :
On my first play through of Ruby my team was Swellow, Magneton, Sceptile, Lintoone, Machoke and Psyduck, Quite how I manged to win the pokemon league with that team am not quite sure. If I was to do it again only Swellow and Sceptile would remain in my team. Having said that that Magneton was transferred to Heartgold and evolved to Magnezone and used in the pokemon league then transferd to Platinum and then to White to complete the Pokemon league in those games.