My site has a customised Wordpress install, a custom domain, email addresses at that domain and now a subdomain for my life steam. And other than the domain name itself, I don't pay for anything. It's taken me a while to work out how to get this all up and running. This post will briefly cover the services I use and the downside of going with an “almost free“ web presence.
For the core website, there's a lot of free blog hosting options like Wordpress.com, Blogger and Posterous. I didn't go down that route in part for historical reasons and in part for the flexibility of being able to customise Wordpress. Instead, I went with the free web hosting service Freehostia, which provides basic php and mysql support. Freehostia also gives you control of the DNS config, allowing you to buy a domain elsewhere and associate it with the site. There are other comparable free services if you hunt around.
One thing that Freehostia's free service doesn't provide is email support. However, Google Apps lets you set up Apps at your domain, for free. This includes creating users who can have a gmail address at your domain. So for example, you can set up email@example.com, which is just a gmail account, but it looks much more professional than firstname.lastname@example.org. To do this, you'll need to have access to change your DNS MX records and also be able to upload a file to the root of your domain. There's doco from Google on how to get Apps up and running, but it's a bit of a painful read.
I've recently started using Posterous for my life stream. That is, all the minutia that's more than 140 characters but not worthy of a full blog post. Other than tweets, almost everything I post online now goes through Posterous. Firstly, it lets me keep everything in one place. Secondly, the awesome thing about Posterous is that you can set it up to post to multiple sites automatically. For example, to upload my latest Project365 image, I send an email to email@example.com with the image attached and Posterous automatically posts it to my Posterous site, tweets a link to the post, and sends the image to Flickr. It's very flexible and useful. One of the many awesome features is that you can use a custom domain. So at Freehostia I set up a new subdomain (stream.benrhughes.com) then changed the DNS A record for that subdomain to point to the IP address given in the Posterous settings. Unlike Google's doco, the Posterous help is simple and helpful.
As I mentioned, you could use Posterous with a custom domain for your main site, however it is designed to be simple and although customisable, it is nowhere near as flexible as Wordpress.
Although I haven't started using it yet, if you need a place to host and share large (or a large number of) files, DropBox gives you 2GB of storage for free, and doesn't limit the size or type of files you upload.
It's not all smooth sailing though, there are some downsides for going with the free options. For example. Freehostia's free service, whilst reliable, is fairly slow. For that reason I host any images externally (on Flickr, Posterous or PicasaWeb). It also doesn't allow PHP scripts to access data on external sites, which effectively killed the gallery software I was using. Some Wordpress features, like the spam-blocking Akismet, also don't work.
If you're prepared to live with the downsides, and put in some work configuring things, you can have a pretty decent looking web presence for the cost of domain registration. If you're a hobbyist like me who can't justify the cost of 'real' hosting, it's well worth it.