Heliohost is a free web host with more features than a lot of paid hosts, cPanel management, email server, no strict limits on bandwidth, and 1GB of storage. The main downside is that is can be a little slow.
Setup
Follow Domains to set up a free domain if desired.