Another vote for linux here. I did pretty much what you want to do and it cost me only $10 for a domain name and that's it. You can do it cheaper if you don't care what your website is called. You'll take some lumps learning stuff but I had a blast. I recommend Debian and then an install of Drupal. I used zoneedit for my dynamic DNS. I realize all that may be alien but it will start to make sense when you get into it. I knew nothing about servers and followed the HowtoForge article below and was up an running pretty quickly. The DNS thing was the hardest part especially if you have a dynamic IP.
http://www.howtoforge.com/perfect_setup_debian_etch
http://drupal.org/