I noticed a couple of posts recently which discussed the activity of blogging — by Gabriel Weinberg on his blog, and Rick on Flip Chart Fairy Tales. They both mention a key benefit of blogging — that it forces you to understand what you're writing about.
Blogging forces you to write down your arguments and assumptions. This is the single biggest reason to do it, and I think it alone makes it worth it.
You have a lot of opinions. I'm sure some of them you hold strongly. Pick one and write it up in a post -- I'm sure your opinion will change somewhat, or at least become more nuanced.
When you move from your head to "paper," a lot of the hand-waveyness goes away and you are left to really defend your position to yourself.
Blogging forces you to put some effort into understanding your material and constructing a reasoned argument. Most bloggers, even the ones who irritate the hell out of me, usually have something interesting and thought-provoking to say, some of the time. The fact that we have to put some thought into our posts acts as a brake on our more idiotic tendencies
I find that even just thinking about writing a post engages me more with the subject matter. In fact I think about writing considerably more posts than I actually write. I know… but I still gain a lot from it. I particularly like it when I start researching something and it turns out to be more interesting than I expected. For example, my last post on Arrays and Enumerable.Last() seemed to be about a pretty trivial topic, almost not worth writing about, but when doing the research it I discovered an interesting post from 2004 about the design of the .NET Framework which had a direct bearing on what I was writing about.
Also, I find that working in an Agile development environment with not a huge amount of design documentation my technical writing skills get a little rusty and some blogging every now and then helps to sharpen them up.
Finally, from a practical point of view, I recently discovered something else about blogging — it helps to have a blogging environment with as little friction as possible (witness the burst of posts here recently). I rewrote my blogging engine as an ASP.NET MVC3 application and in the process added two features which make it considerably easier to write posts. First, I added support for Markdown , which is so much better than hand-crafting HTML, which I'd been doing ever since I started in 2001; and second, I implemented accurate preview which makes proof-reading easier and reduces the risk of typos and other mistakes slipping through to publication (the preview can also be easily copied and pasted into an email in its exact intended final format if I want to give it to someone for review).