I only have two experiences with outsourcing so far, and that was the case for my first time. He emailed me shortly after "starting" the project, saying that development had stopped and that he was looking for a developer to replace the last one. More emails with more excuses followed, taking up the original time-frame for the project, and then he just stopped emailing entirely.
So, if you get the slightest hint that the person you're talking to wouldn't be able to get the job done if a staff member leaves, then go with someone else.
If, however, you manage to find a good developer/team that has either has a strong portfolio, or enough successfully completed projects (on a site like http://rentacoder.com [aka http://vworker.com]), then you shouldn't have a problem.
Just do a bit of upfront research on the person/people before committing to anything. Make sure you feel comfortable in their ability to get the work done, backing that up with data of some sort, and you should be fine to outsource.