I've worked in a large business with outsourced IT for a variety of functions, and also in my own ventures with some outsourced IT work. I myself am in IT and a highly technical person. Here is a summary of my experience.

Benefits:
-You can definitely lower costs, especially if you are willing to outsource work to other countries. This works best when you have variable IT demand (for instance, you need a web site redesign for 2 months, then you plan no IT projects for 6 months). Using short term contracts is great for that kind of thing.
-You can improve service. By drawing on the expertise of another specialty company, you don't have to train your own employees and can rely on their experts. Often they deal with hundreds of similar systems from a variety of companies every day.

Risks:
-You lose control of the knowledge of your system. Changing contracts in a year or two can be very hard if you don't keep knowledge in house - things like server configuration, upgrade processes, key people, and common performance and availability issues. I have had major problems with this in the past, when one provider kept upping the charges year over year and I finally made a switch to find that a lot of the standard processes we used were actually IP of the contractor, and were non-transferable to the new company.
-You potentially add risk to your data. If contract resources are working on a database server, they also have access to that data. If you have any personally identifiable information in there (like SSN and name info, CC info or bank account data), you have to be very careful about how you notify customers and your existing agreements.

I have had some brief conversations with Best IT, but have not personally used them. Most of my experience is with free lancers or larger firms like HP.