Apsillers' answer is perfect, I will just add a case study about the last paragraph ("Money talks").
My open source project (1.5 million users) has had users pay third-party companies for features. I wrote the guidelines below, they are general enough to be applicable to most projects:
Guidelines about sponsoring development
In case you are willing to pay money for a feature or fix to be implemented, here is how you can do it:
Find the issue in the issue tracker, or create a new issue if it does not exist yet.
Add as many details as you can, describe how it could work, draw a prototype on paper, etc.
Post a comment asking "If I provide a good quality patch for this feature, will it be merged?" and wait for our answer.
Choose someone to do the job. Use any crowdsourcing platform you trust (for example bountysource), or a developer friend, or a software company. Make sure they know Android and Git.
Reach an agreement with the developer:
Agree with the developer on the conditions, defining exactly what they must implement.
Insist that produced source code must be released as Open Source (not doing so would be a breach of the GNU-GPLv3 license). A common error would be to ask only for the binary (which will quickly get out-of-date and incompatible)
If possible, make it a condition that produced source code must be merged by us before total payment. Or make it half/half. If the issue is classified as "critical" in our issue tracker, then the developer can be assured that we will merge it fast, if the code is good enough.
Propose to become a tester if they need. Giving your feedback early could help. Be sure to test on different devices and in different scenarios.
Summary of the workflow: