Your team should consist of Electric, Psychic, Ice and Water types (if you've got a high level Water/Ice type, definitely bring it). Zapdos and Articuno are obviously great choices, but don't forget about the likes of Alakazam, Jolteon, Blastoise, Cloyster and Gyarados. Jolteon's Pin Missile attack will prove itself worthy against the Psychic types you will encounter in the final battle.
Lorelei shouldn't give you too much trouble as most of her Pokémon are Water types and can be knocked out with one Electric hit by your Zapdos or Jolteon. Watch out for Jynx, though. Her Ice attacks are powerful against Flying Pokémon.
The fighters are easily defeated with the help of a Psychic type or by a Flying attack like Drill Peck (another job for Zapdos...). Use Surf against Onix.
You can easily knock out the Ghosts and Arbok with a Psychic attack. Golbat is also very vulnerable to Electric attacks. Agatha loves to put her enemies to sleep and then follows up with Dream Eater. You can counter this by switching to another Pokémon. Remember that the Poké Flute can be used to wake up sleeping Pokémon.
Lance's group is made up of some truly rare Pokémon. Luckily, most of them share the same weakness: Ice. Use Blizzard or Ice Beam against all the Dragons. If you don't have a Water type to use against Aerodactyl and an Electric type for Gyarados, you can use Ice attacks on those two flyers as well.
It's not over yet. You knew there was going to be one last showdown with your arch nemesis, Gary -- and the time has finally come.