I am interested in learning how to run a server to host a website and provide me with email and all the other features hosting companies offer. I have read snippets from all over about different aspects, but I would like an absolute begining as I don't really even understand how servers work. Can anyone recommend a site or book that would offer a solid foundation for understanding how a server works.
Your best bet is to rent a Virtual Server for ~£15 a month for approximately six months.
The reason being that there is only so much you can do with an offline host, e.g. something on your LAN - it is just not 'real-world' enough.
The best operating system to learn with is Ubuntu simply because it has the best community support of all of the distros.
With your basic box you will need to get the webserver running, the emails to work and build a suite of tools so that you can access the thing with more than the command line.
Rather than follow a course or reading a book, the Virtual Server and some tasks you wish to complete will help you with goal-oriented learning.
One site that I found immensely useful is http://www.howtoforge.com/
Their how-to articles include the 'perfect server' series. These will take you through all the steps needed to build a functoning LAMP stack.
Linux Administration Handbook
This book helped me a lot when I started.