I'll throw in my 2 cents and agree with the other two replies so far. Hosting your own server is typically not economical nor advisable unless you really know what you are doing. I have paid hosting at 3Essentials.com and love it, but I also run two of my own servers (one for development purposes, one for live personal websites for myself and some family members). Do my own servers have 100% uptime? Hardly. Even with UPS backups and all, I can't guarantee the power where I live (good snow storm hits and I could be out of power for several hours, for example). I built both of my servers out of spare parts, my development one is a measly Celeron 2ghz with 1gb RAM, it could hardly be close to "production" quality. The other server is a bit beefier (actually was a real server that we no longer used at work so I got to bring it home) -- it is a dual processor 2.4ghz Xeon with 1.6gb RAM.
What it comes down to though is for a website that I want to guarantee uptime on, I don't want to bother hosting it myself. Development sites, personal sites, etc, if they go down for a day it doesn't bother me... I'll get to fixing it when I have time, but if my business site when down I'd not be too happy about that.
If you want to "host your own", you'd be better off getting a dedicated virtual server somewhere because they handle the backups, the power generators, etc, and you still get the benefit of a dedicated machine. Alternatively, you could purchase a server and co-locate it somewhere so you at least get their power backup benefit, but you have to maintain your own server and if you don't know how to do that, hiring a consultant would be a costly alternative.