Contributing to Open Source is a good thing, but only do it if you're getting some benefit from it. Does spending your time writing code for other people give you some business advantage? Help establish your reputation? Pay you cash money? Tickle your creativity and make you happy? Cool, then go for it.
But think twice before spending your time patching somebody else's thing for free. Chances are they are getting one of those tangible benefits from it, and if you're not, well, what does that make you?
Notice that many of those big, altruistic Open Source projects that made the world a better place also made the world a better place for their corporate sponsors in very specific and well thought out ways [1]. There's not that much real charity to be found, even though it would make a better story if there were.
Notice further that all those upsides listed above can also be had from developing your own for-profit, possibly closed source software products or working for somebody else doing so. If whatever you're doing isn't getting you further ahead than that, it's your duty to yourself to fix that.
[1] http://www.joelonsoftware.com/articles/StrategyLetterV.html