Any decent Special Attacker will do. Weezing users with common sense won't stay in on any of your Special Attackers, because they all land a 2HKO, at the very least.
If you want specific counters though, here are a few.
Edit: In response to your edit. In Pokémon, the definition of a check is:
> Pokémon A checks Pokémon B if, when Pokémon A is given a free switch into Pokémon B, Pokémon A can win every time, even under the worst case scenario, without factoring in hax.
> Pokémon A counters Pokémon B if Pokémon A can manually switch into Pokémon B and still win every time, even under the worst case scenario, without factoring in hax.
The main offensive moves Weezing uses are Sludge Bomb and Flamethrower, so Weezing can't touch Heatran. You can set up a Substitute, and if for some reason he stays in blast it with a powerful STAB move.
Resists Flamethrower, and Latios lands a 2HKO with Psyshock, and a OHKO with Life Orb Draco Meteor:
252 SpA Life Orb Latios Draco Meteor vs. 252 HP / 0 SpD Weezing: 370-437 (110.7 - 130.8%) -- guaranteed OHKO
Trap Weezing with Shadow Tag, then take him out with STAB Psychic. You can run fully Specially Defensive to counter Weezing specifically.
You can run Extrasensory, but most of the time they will switch out in fear of powerful Protean moves.
Terrible Defenses, so it can't switch in safely on Sludge Bombs, but if it gets a free switch then Weezing is done for if it doesn't switch out.
It doesn't appreciate Sludge Bombs, but switch in on Flamethrower or Will-O-Wisp and spam Fire Blasts.
Those are just a few examples, you don't need to use them really, your Special Attackers will do, but you did ask for counters.