My volunteer work as been a little low this past year so I decided to look for a new group to work with. I found a non-profit that bills itself as "Peace Corp for the corporate world." They take professionals and match them with small non-profits who need "professional level" help (as opposed to stuff envelopes or working phone banks).
I went to their orientation and it was mostly graphic designers, software developers, marketers, consultants, accountants. Their projects tended to be things like designing a new website or better service database, or a new branding campaign, or an annual report.
I don't know if this group is any good, but I very much like the idea of it--matching skilled professionals with small non-profits who need the services but can't afford it.
I've often encouraged people to work on open source projects to build up a portfolio and gain experience. This is another means. You're less likely to find a cool project, or be able to learn from others' code the way you can on a larger open source project. However, you can feel yourself making a difference (e.g community outreach program) and it's also good for networking opportunities. (And I imagine most would be ok with you at least showing the code you wrote, if not letting it be open source altogether.)
I don't recommend simply picking a non-profit an calling to offer to help (most wouldn't know what to do with you) but finding one of these matchmaking organizations will help ensure that you will not be left on a project all alone and that the non-profit you help will be able to make use of your skills.
I originally didn't post a link because I haven't really worked with them yet, meaning haven't done any projects through them so can't say whether or not they are a worthwhile organization. (E.g. when I recommend a book or a class, I'll have personally read it or in a few cases have enough trusted people endorse it to me such that I feel comfortable on the basis of their recommendations; that's not the case here.) However since people have asked the group is called Taproot; there are probably other similar groups.