Pick a large, active open-source project and try to help with the problems its developers have. You will be loved.
Here are some of the problems I'm aware of within the Mozilla project.
Speed of development
'make' doesn't scale. An incremental build, even with no changes, takes at least a minute. (In contrast, just checking whether any files have changed takes 'hg' less than 10 seconds.) Maybe help us move to 'scons', or help improve 'pymake', or just help us get our dependency generation right.
'ld' is slow. Once a developer makes a change to any c++ file, the incremental build is going to take several minutes while the linker uses up all her RAM. Maybe help us move to another linker such as 'gold', and contribute any necessary changes back to the 'gold' project.
'hg' merges are confusing. hg's developer-facing user interface could be improved, both while doing a merge and after doing a merge.
Automated testing
We've built an interesting interface around hg-pushlog (which is itself a Mozilla extension to hg) and buildbot that lets us see which tests failed after each change. I'd love to see these tools generalized to the point where other open-source projects can use it and contribute back to it.
As we require unit and integration tests for more and more components of Firefox, we're finding that a small number of tests failing intermittently can make it difficult to move quickly. We could use better tools for tracking test failures, and for record-and-replay debugging to help us figure out the intermittent failures, and probably for other things we haven't thought of.
Programming languages
We need a decent low-level programming language. Something that lets programmers implement sneaky fast algorithms, but lets programmers do it without constantly shooting themselves in the foot with security holes. Something you'd want to write (difficult parts of) a web browser or OS in.
I don't know if the answer is adding more and more to the type system (like in Cyclone), or integration of assertions with static analysis (like in D), or simply making it easy to integrate low-level code with high-level code (like in C#, or with ctypes or jsctypes).
Mozilla is doing interesting things with custom static analysis of C++ code.
Making collaboration tools support workflow and GTD
We have a crash analysis system and a bug-tracking system with lots of information, but the workflow is poor, so much of the information is not acted upon.
It's hard to come up with a good workflow (and make the tools support that workflow) in a large project where many of the contributors are volunteers who decide themselves what to work on, but I think we can do better.