Email, with web-based access (a la Hotmail), some spam protection, mailing lists, aliases and more.
A web server, with support for popular server-side languages and SSL.
User accounts with access via SSH (ties in to the email and web services).
Domain name services.
and a whole mess of other services I could turn on, but generally won't except for special circumstances.
With the software available for free or very little cost I can supply just about any capability you've ever seen on the Internet. Most of this starts with a domain, the "something-or-other.com" part of all those "www.something-or-other.com" things that now appear everywhere imaginable.
I host many domains (something like ten when I wrote this). I host them all from the same machine. For the most part, they appear independent, but with a few side effects. If you have a user account under one domain, you have it under all of them. Hence, you have all the corresponding email addresses (e.g. email@example.com and firstname.lastname@example.org both arrive and get delivered to me). I can do things to isolate the web site for a domain (so there is no apparent connection to anything else), but this takes some effort. For example, I could make it so that the world could navigate to http://www.hod4.net, http://www.hod4.net/~hod and http://www.quetzals.net, but not http://www.quetzals.net/~hod.
I try to pay attention to the security of the machine. (Please note, this is not a dare, but if you do hack into my system, please be nice enough to tell me about it.) I also try to backup important files (especially user mail). However since I have limited resources I cannot guarantee everything will be up all the time.