I have a Rayquaza lv.100 with the moves:
Flamethrower
Earthquake
Extremespeed
Thunderbolt
I have also whittled down the chances of being completely humiliated by an Ice Type Pokemon by raising Rayquaza's speed as high as possible, so I can obliterate the Ice type with Flamethrower without any problems. Also, if I am battling a water type pokemon with a strong Ice move, I can just use Thunderbolt.
I have also taught it Earthquake to deal with the Rock type, which are strong against Rayquaza.
It still may not be the ultimate invincible Pokemon, but it is improved.
Come to the dark side...........we have cookies!