for DNS i recommend the book DNS and BIND, the O'Reilly book. I have it, it's great.
for webserver setup- apache normally comes setup with most main-stream distros if u select to have it installed for you. the webhosting part would involve some extra setup. look for something on Virtual Hosts (in apache).
go to
http://www.google.com/linux and type in "apache virtual host howto" and see what u come up with.
i have never setup FTP, i just use my webserver to serv files, i dont do a large number of files, usually just documents, stuff that could be emailed if need be.
never used qmail, but Sendmail was easy for me to setup (well, easy after i found what the problem was).
and a good tool to help manage everything is webmin.
http://webmin.com