Hosting a single web server for your own personal stuff is not that hard.  Hosting it as a company or a very popular site on the other hand is harder, and more expensive as you need DDoS mitigation and have to constantly be on the ball about security issues and watch logs like a hawk.  You'll spend the majority of your time tracking down hackers and trying to figure out how they got in etc.  A single bad php script will make the whole server vulnerable to attack, that can be a user's old forum or anything like that. 
If you host it at home it makes stuff easier as you can setup any type of infrastructure you want without having to pay extra per month like you would with a dedicated server provider or colo.  Unfortunately most ISP's don't allow it, which I think is BS, but what can you do, nothing.