It's really easy, if you use open source software on a daily basis. There will always be something you'd like to improve about it and personal interest is the best motivation.
Any time i've looked into this, especially whenever i've found bugs (in things like ODE), i always find stories of people submitting patches that get ignored and similar tales...i presume one has to get involved in the community first somewhat?
Depends on the project you're contributing to. True, there are projects that are more reluctant to accept "outsider" contributions, but I doubt that if you come up with a viable solution to a real problem, you will be ignored.