Hello. You can do hosting at home if you have ADSL or SDSL - for nothing. In fact I host a small, non-popular, business website at home using a very small Linux embedded (Acme Systems Foxboard
) computer attached to the router via a LAN cable.
I have a domain name and can access the settings to change the IP address to my home ADSL connection. I set the router to allow incoming traffic on port 80 to go to the Linux box. Obviously you don't want to do this if you have a popular website as you won't be able to handle the traffic. Also your ISP has to be liberal and not some large, dismal, populist dictator like Tiscali or BT, such as we have in the UK. Because, many ISPs won't allow incoming traffic on port 80.
The other choice is co-location where you hand over your server to a hosting company - one that actually has a datacentre. This isn't cheap, but you get much more freedom.