I was recently reading a technical blog from some knowledgeable geek or other and he mentioned that it recommended learning one new language every year. The benefits are two fold - you both learn a new tool, but more importantly, every new language you learn furthers your understanding of the ones you already know. Its the same with spoken languages, if you learn three or four of them you become more fluent in them all as you can see how they all fit together, how nuances are shared between them, etc.
So I've given myself a mini quest - to read and understand one technical book every six months. I'm planning that one will be a programming language (Python, Java, etc) while the second would be a general theory book (OOP, design patterns, etc). My first goal is the Ruby on Rails book I just mentioned, and after that I intend delving into some more application development theory, probably with either Refactoring: Improving the Design of Existing Code, which is supposed to be pretty darn awesome, or maybe I'll see if I have any already on hand.
My reasons for doing this are fairly straight forward - I need to both keep up with current changes in the industry, and it's good to know how to use more than one tool (you can't build a house with just a hammer). The primary reason, though, is that I have very little understanding and usable knowledge of advanced programming theory - object oriented development, design patterns, etc, and short of going back to college the only way I have of learning these things is to take the time to do so.