1-First thing is first, you need your own domain name. You can go to any registrar and get one (e.g Network Soultions, Register.com, registerfly.com, godaddy.com, etc.) I personally use registerfly.com because their control panel beats the pants off anything I've every seen, and they are affordable at $9.99 and sometimes less when they hold a SALE!
2-You need to sign up with a "custom DNS" service like www.dyndns.org or www.no-ip.org (I think that's their name) Follow their instructions, and they provide domain registration also if you want to roll those two processes together.
3-Point your registrar's system to the DNS services' "domain name servers" or "DNS servers" and that if done correctly will propagate(be diseminated through the Internet) in about 48 hours max.
4- Get a "DNS client" to run on YOUR server, this little app communicates back to the DNS service and let's them know what your current IP is if it's "dynamic" so they will know what to point to- so your www.yourdomain.com will resolve at the right place. (You can skip this if you have a static ip and only one machine with no router/firewall-which is bizzarely unsafe.) Your DNS Client should be set to be one of your "login items" so it auto-launches at every restart.
5-If you do have a router/firewall you have to configure "port forwarding" so traffic hitting your router on port 80 (html port) will be passed on to your server's IP on your internal LAN. If your ISP blocks port 80 then you will need to route it to another port (e.g. 8080 and make sure your sever has that port open in "network port configurations") or consult the DNS service's FAQ's they usually have a workaround.
I've been toying wih all this and I got this work for myself, now I have to work on the site...<Jeeez>