There are a few differences between the two version:
Basically, the game is almost identical in gameplay. However, there are a few
differences as mentioned below. Besides this difference, some Pokemon might be
commonly found in one version while rare in the other version.
Ruby:
You will fight Team Magma in this game, and Latios could be encountered
randomly in the wild after beating the elite four.
Pokemon exclusive to Ruby are:
Zangoose, SolRock, Groudon, Seedot, Nuzleaf, Shiftry, Mawile
After you awakened Groudon, the weather will be sunny.
Latios is catchable randomly in the wild.
Sapphire
You will fight Team Aqua in this game, and Latias could be encountered randomly
in the wild after beating the elite four.
Pokemon exclusive to Sapphire are:
Seviper, Lunatone, Kyogre, Lotad, Lombre, Ludocolo
After you awakened Kyogre, the weather will be rainy.
Latias is catchable randomly in the wild.
Credited to :
http://db.gamefaqs.com/portable/gbadvance/.../pokemon_rs.txt