Wouldn't the expected return of a mining pool be no more than solo mining? I don't understand the advantages of pool mining if you want to maximize your return.  It seems like all it does is even out your return to make it more predictable by paying you smaller amounts more often rather than nothing for long periods punctuated by an occasional 25 BTC.  But in the end won't you end up making the same amount, if not less (considering the pool operator's profit) by joining a pool?
Yes, but it's a similar situation to taking out insurance - many people would rather pay a known regular amount to insure their car than take the chance that they'll have to pay a large amount occasionally. Like pool mining, insurance usually works out in favour of the other party, but it's still valuable in order to reduce your variability.

If you have enough mining hardware operating that your payments are relatively regular, then it would likely earn you more to solo mine. If you would only solve a block very occasionally, you are taking a significant risk you'll get a low reward or nothing at all.

However, you also need to run bitcoind to solo mine, whereas you don't when pool mining. The more mining hashpower you have, the more bandwidth pool mining will use, but running a node will use a roughly constant amount of bandwidth. Update: pools are now available that avoid this problem (Thanks, Dr Haribo).

Back in the days when I mined with my GPU, I would've had to upgrade my internet account if I left the client running 24/7, which would have cancelled out any benefit from solo mining.