I prefer maintaining relationships with a few good consulting firms so that hourly programmers and technicians can be brought in as needed. Ideally, the contract should allow right-to-hire but that may not be in your interests (but the loss can be mitigated by charging finder's fees).
It's obviously also in your best interest to engage with good clients with proper expectations and experience with consulting resources. For example: once a consultant has established him/herself with us we give them leeway such as flexible working hours and dress code. Although none has ever reached the pinnacle of working in their underwear :)
We are also accustom to having contract resources working with our teams so once the resource is established, they tend to integrate well into the team and the lines between contract and employee resources fade away.