Roach/Hydra is the standard build, roaches to counter ground - tunnelers are invaluable against mech - Hydra to counter early Rays/Banshee.
After that it's infestors, air or ultras.
The real !@#$%es are tanks and early Colossi, they can both chew up ground in seconds flat - easy to kill if you can get past the blockers, but you better be fast.
Your best bet is usually a 6 pool, roach rush, or baneling/speedling, before they get that ^-*!.
Otherwise, mid to late game, you need to focus on ranged units, Hydra, Muta, Broods, etc., w/blockers - roaches or ultras to keep their ground at a safe distance. A few speedlings or banelings in there in there doesn't hurt.
i.e., a typical Terran all in is Marines and Marauders blocking for Tanks, and if they're good, medivacs or Vikings for sight, it's tough to counter all that at once, you're usually better off ambushing them in the open.
Typical Toss all in is either Mass Rays or Stalkers and Immortals blocking for Colossus - Corruptors are the best counter for the latter, but you better be able to keep their ground busy.
Broods solve a lot of problems, it's the closest thing the Zerg have to a tank, but you need a lot of aa support, you'll have to be able to counter heavy air, they're slow and expensive, and not easy to get in less than 20, most games are over one way or another by then.
Airwise, the big problem is mass rays, if you let them get them it's trouble - Hydras are the best counter for rays, but less mobile, Muta are very effective, but like a lot of Zerg play, it's a numbers game, maxed Rays will beat maxed Muta, and Muta are less effective against ground with equal tech, and Thors are always problem, Terrans love their mass Thors.
Muta against Rays, Corruptors against Muta, Carriers, Phoenix, or Battlecruisers - they have no ground attack, but you can crack Broods once you take out the air. Either are good against Vikings, Muta are faster and better in a chase.
I haven't used infestors much, but they can be pretty effective as an all around counter, they can attack air or ground.
Gameplaywise, get some kind of early rush together, even if it's lame and a pathetic fail, it lets you see what they're building, so you can make the right counter units, there's endless variations and balances of ground and AA, hustle and muscle, but the ability to change up quickly is one of the great advantages of the Zerg.