My advice: stay more or less within your "professionally chosen" platform (i.e. .net, java, …) for libraries, but learn other programming languages.
Both the JVM and the CLR make great platforms for doing this, as they both allow a lot of different sorts of languages (dynamically typed, statically typed, functional, OO, …), while the libraries for these are more or less the same.
The reason is that libraries are often bigger and harder to learn than a new language, and the benefit is much lower: if you've only done OO programming, confronting yourself with a functional language will broaden your horizons considerably. However, you're unlikely to learn much new concepts from learning to work with java collections vs .net collections.
Finally: yes, have a pet project. A project will keep you going, you'll learn more, and you might even get some good feedback if you release it. On the other hand, if you want to learn a very diverse skillset, a project is likely to keep you dwelling on one aspect.