I use any resource at my disposal, but I think it comes down to a little formula that takes in these two data points:
1) what am I trying to build?
2) what are my strengths?
Here's how it works. I basically calculate a "success probability outcome score" based on these two factors. Here are some examples:
Let's say I'm creating sophisticated SaaS solution with a complex data structure and backend. I'm strong in the product side (features, UX, architecture, etc.) but weak in the tech side so outsourcing with oDesk could be a challenge. In a separate case, if I've got a really basic dynamic website with half a dozen tables and basic CRUD operations, oDesk might be a great source for me b/c the project is pretty straightforward and I can project manage all aspects pretty easily given my strengths.
In general I use oDesk, Elance and the like for more basic and straightforward -- they have a wide range of services there including: coding, graphic design, copywriting, task management, voiceover, etc. For this stuff, it's a no brainer. If the project starts to get out of the scope of my expertise and it's generally complicated tech, I tend to stay away from these services.
There are also other ways of getting this done.
Pl check out websites of Accelerance (has a global network of development firms that they will help you choose from) and Dashfire (might help incubate your idea in exchange for equity if you have reasonable customer validation done already.)
In parallel, you'll have to continue looking for a technical co-founder. Angels/VCs won't generally invest in a tech startup without this.