well...first, go register your domain! I prefer
GoDaddy. They will run DNS for you if you don't want to. Point your newly registered domain to the IP address of one of the machines you want to host the service.
If you are like most of us and have only one routable IP, point the domain to that (The routable IP given to you by your ISP) and then use the port-mapping feature you router most likely provides to point the port to the PC being used for the service you want to host...
ie..
port 80=HTTP (web) ----> TechGeek's web server PC
port 25=SMTP (mail) ----> TechGeek's mail server
...There are thousands, so I won't even try to list them all..wanna see? go
HERE
anyway..port mapping is kinda cool, cuz you don't need to use third-level domains, you can pooint your whole domain to the WAN port of your router (the IP given to you by your provider) and then port map the service to whichever PC you want to host that service...Hiola!
NOTE: Most people in the cable-modem land (and cheap DSL) have IP's that expire

. With that said, you would have to change the IP your domain points to everytime your provider releases/renews your IP address. Now with that said, I have Comcast, and have had the same IP for over two years now. BUT...if your IP DOES change frequently you can use some of the Dynamic DNS providers out there (google it). The Dlink router I just bought actually has a feature that will auto-update these providers if my IP changes (cool huh).
don't forget you will need to be running the services daemon for this to work (ie..Apache, Qmail, etc...). I'm not sure of the Windows equivilent, as I run all my stuff on Linux.