I used this tutorial - http://forums.srcds.com/viewtopic/5439
but the above links work fine too.
PROTIP: If making the server for friends to play on/small get-togethers from nearby areas (as I do), hosting from your home works fine; you shouldn't have to buy one unless you need it for higher-traffic reasons.

The question is what type of server do you want to run. A listen server or dedicated server.

A dedicated server requires hiring an external server box and running applicable software on it like Source/Meta-mod. As well as setting up an FTP and possibly a redirect for downloads.

It's possible to run a server off your machine, but i wouldn't join it on the same machine to play. Use a second computer for that.

A listen server on the other hand is more of a temporary server you run through TF2 itself. You create a server via TF2 and open it up via the console with various relavent commands so that other players can join (IE "sv_lan 0"). But again, if you intend for people to download custom maps that's gonna pose a bandwidth issue for you.