What are some pros and cons of hiring full time employees onsite vs employing contractors on platforms like UpWork (ODesk)?
Salary is one. In almost all cases remote workers are going to cost you less. Both in terms of the salary and overhead (office space, taxes, supplies, etc).
The biggest pros of using full-time remote employees (not thinking about freelancers here) is of course that you can save up to 80%, and often got a bigger talent pool to chose from.
The biggest con is without a doubt, that if you can't communicate with your employee (bad english skills, not available for conference etc), then it doesn't matter how talented he is. Cheap freelancers is something I would stay away from in general, since the trouble is almost never worth what you might get.
I agree with Greif. You'll want to balance how much you value good communication vs moderate communication vs the pay difference.
If you can get a programmer overseas for hundreds per month vs thousands locally, but overseas is slow and not the best at communicating does it cost your more in loss productivity revenue than the salary savings?
You'll usually go through 5 - 10 overseas candidates before you find a good one. Is wasting those 3 months worth it? If you can float the productivity during that time it could be worth considering. If anything I've learned it's often worth paying for better communication at a higher cost to save wasted time.