I've done this quite a few times. While it's great for testing and training on, I'd never suggest it for production.
There's many ways you can do it, but the best way IMO is to install CentOS on a spare PC. If you're not experienced you can install Webmin/Virtualmin. Use something like
http://www.zoneedit.com/ if you need dns hosting, and auto update your dynamic IP with one of the many scripts available. Also make sure your router is forwarding ports for any services you need to your "home server".
If you've never done this it can take quite a while to get it right, but if you subtract the time waiting for installs, research, and do everything correctly this only takes 15-20 minutes.
Also, if you only need to host 1 domain you can use Plesk free of charge
