Well, depending on the type of fight (single and then double) these would be it:
Singles:
Aggron
Shiftry
Zangoose
Altaria
Manectric/Swampert/Walrein/Solrock/Linoone/Gardevoir/Sharpedo
Aggron is a powerhouse who can learn quite a few extra attacks thanks to TMs (you could actually use it in every fight in the E4 and not go wrong). If you do not evolve Nuzleaf for a while and teach it Extrasensory, Shiftry is a beast. Zangoose is strong and destructive, but even more so when you use Sword Dance. Altaria because it can learn a huge amount of attacks (mainly through TMs though) and it's pre-evolution, Swablu, it pretty easy to find. I put so many down for the last one because any of them will make a good pokemon.
Doubles:
Slaking
Dusclops
Blaziken
Kingdra/Flygon
Wobbuffet
I know there isn't that many Double Battles in Ruby but one of the gym leaders do double battles and it pretty dang hard. I chose Slaking for it's extreme strength; it could easily be a 1 Hit KO when using him but you have to watch out for his ability. Dusclops because he is a ghost-type, which gives him more resistances than normal but also for his bulky defense and having him use Skill Swap with Slaking makes it all the better. Blaziken for the same great strength but also for it's speed and wide move selection. Kingdra because you can get one faster than a Salamence and can be evolved faster than Flygon if you can trade. If not, Flygon is the way to go for a Dragon type. As much as some people dislike Wobbuffet, it can be a godsend when it actually counters the opponents attacks. Add that to it's bulkiness and high HP and you can use him to stall attacks as well.