I have been hosting my own since 2000 and had hosted 3 others for a while till someone in here accused me of trolling for business in these forums. I can tell you it is quite cheap to get a commercial connection, a professional one, with multiple IP addresses and toss in a few DNS servers and a web server with your email and all that crap. You do not need to have your own DNS servers but it makes it a lot easier to have everything in house and do it all your self.

I would suggest using Linux servers as there are much much less security risks and a lot easier to operate with out all that drag a Windows servers has. The difference is Linux requires very little to no resources to run on idle as where Windows requires a ton of resources to just sit there.

A smaller Linux server will kick the crap out of a large Windows server any day of the week.