You've got your internet connection (cable or DSL) letting info into and out of your house. First stop is the router, which in most cases also acts as a firewall separating the inside house network from the outside rest of the world. But this barrier must be semi-permiable in order to let your internet traffic in and out of the house (so you can get your email and buy Futurama from Amazon.com). The router can do this because it has a public side (the IP you get from your ISP - maybe fixed or maybe dynamic depending on your service) as well as a private side (your machines) and it routes traffic between these two sides. When you request a site the router knows your machine's local IP and takes your request and sends it out to the world at large, but after substituting its public IP address. When the answer comes back the router forwards the reply on to your machine.

If you want to host a website you need to configure your router to route requests coming from outside to go to one of your inside machines, which (when running as a web server) will reply and send the info back out; the reverse of the process above. You need to do two things first: set up the web serving machine with a static IP address and configure the router to forward packets to that machine. Go to the IP forwarding section of your router's configuration setup and set it to allow traffic on port 80 (that's the number for http traffic) to pass through and go to your machine's local IP address. And set the local machine to have a static address so it doesn't change and have the router routing http traffic to a vacant IP address.