You can use dynamic dns from soneone like
www.dyndns.org
It's free. All you need is a script that cron runs once a day to make sure your ip stays up to date.
If you already have a registered domain name you can point it at your dynamic name, myserver.dyndns.org and mask it so it shows the name you want it to.
Unless you're running virtual servers off one ip you wont really need dns unless you just want a caching server.
As far as mail goes, sendmail can be rough to work with. Its confiugration file is pretty cryptic.
If you're new to nix you could try webmin. It has modules for apache, bind and sendmail that make it a little easier to work with if its your first time.
Good luck and hope this helped a little