Tips on hosting an online Gaming server?

I've been doing a lot of PC gaming lately (Minecraft, Team Fortress, A.V.A, etc.) and I would like to start hosting my own multiplayer servers. However, I hear constant warnings about laggy gameplay when you try to host and play on a server. Any help?

I am a professional game host, I run www.clanslots.com so thus might be slightly biased. But here we go :
Don't host at home.

Residential internet connections generally don't have amazing upload (and generally it's against the TOS) , for example a 24 slot TF2 server you need at least 1Meg up, for Minecraft it's even worse, the same 1Meg up is around 5 players and even if you do, it's going to do more hops than the same hosted at a datacenter. You'll also need to make sure you have a static IP.

Let alone the extra redundancy (electricity, power, hardware).

If you don't currently already leave your computer on 24/7 the power cost alone of keeping the machine on will cost more than a professional provider in most situations.
You are also at the risk of kids ddosing your home connection, A friend of mine had to get their home IP changed due to inbound attacks on their local server.

However, if you are planning on doing it,  If you don't have a  very powerful home machine (and fast disks), hosting and playing on the same machine will create issues, especially during loading times.

Get a dedicated machine in your basement. Install headless linux (I recommend ubuntu) and follow some tutorials to install the games from hlds, portforward and get started !