@Dark Templar: They do 50 damage a hit, and are _fast_. Zergling fast. They're insanely expensive, 125/125 for their relative fragility. For comparison a siege tank is 150/125. They're not a combat unit, they die way too quickly.
Re: Gas discussion. Here's something you have to factor: Getting more workers on minerals means you can expand more. Expanding more gets you more geysers. Because the number of workers per time is limited, being as efficient as possible with each one is crucial.
Another tip, this time from Sun Tzu: Don't attack where the enemy is strong if you can at all help it. It's normal to want to engage him army on army, but games can be lost in a split second to superior micro or poor unit placement etc. Don't take the risk.
Scout. Send units or scan to see what the enemy is, where he is. Use watchtowers to your advantage to see incoming forces. Find out where he is, and if you cannot avoid battle, utilize positioning and readiness to maximize your advantage.
Similarly in the reverse; if you must engage him in a superior position, make sure you have the right unit composition and knowledge of any weaknesses in position to counter him. Siege tanks have the longest range in the game and are absolutely lethal. Burrow roaches and tunnel up to their positions. Drop marines directly onto the tanks, making them shoot and kill each other. Use air units. Cloaked units. Whatever works.
Send diversionary forces while a main force makes a thrust. One game, I sent my infantry against his zerglings, knowing they would probably die. My force was annihilated and my base breached. I held the zerglings off but the real point of the attack was to send a squad of reapers into his mineral line. I killed every single worker. Even though I lost my entire army, I ended up winning the game.
Attack where he is weak. Defense everywhere is defense nowhere. Pick off key structures to cripple enemy tech. Void rays, reapers, and dropped / nydus banelings are fantastic at this. Kill his workers. Avoid the strong front-door defenses; by attacking in a position of your choosing you're eliminating an enemy strength
If an enemy has turtled up in his base, placed cannons everywhere and has units lining the cliffs, simply outexpand him. Produce so many units you can literally afford to throw them against his wall of defenses until you breach, or tech to the most powerful units and roll over him. If an enemy is turtling you can bet they're trying to tech hard. Get on top of them by outproducing. As mighty as a carrier/mothership fleet is, 50 hydralisks will take it out double quick time.
Do what the enemy is weak against. If he wishes to play long term, build his economy and tech up, attack early. If he wishes to rush, know how to counter each rush so that his economy is left in shambles by attempting a risky high-investment tactic. I recently played a Terran who focused everything into quickly getting both a Thor and a dropship. (total cost, 400/300) He floated it outside his base, where I had six marines waiting for him. (total cost: 300/0) The dropship died with the Thor still inside it, and I overran him.
I find that a lot of the time, you can overcome weaknesses in your own game by exploiting your opponent's weaknesses. If your micro is terrible, have better production and economy so that individual unit control won't matter so much. If your long game is terrible, focus on bringing games to an early aggressive close. Don't lose sight of the goal though; the goal is to eventually shore up your own weaknesses so that the enemy can't exploit them. My micro sucks; I work on it. I often forget to tech up; I work on it. I don't expand as much as I should; I work on it. Knowing what you're doing wrong is key.