You are asking a great question. Basically it depends on your business' needs.
Do you need in-house staff or would it be better to outsource?
If you need someone you can contact immediately and really knows your system, you should look to hire in-house staff. If you do not know what you need and are simply looking for guidance, sitting down with a competent IT consultant will help you ask the right questions so you can determine exactly what you need. A good IT consultant will help you determine at what point it is valuable to hire in-house staff, vs. using consultants.
Most small businesses progress through IT in these steps:
1. Owner guesses on what is needed based on advertisements and advice from friends and relatives
2. Business uses store or software IT staff to answer questions and possibly install equipment (Geeksquad, easytech, Windows support, etc.)
3. One person in the office learns a little about IT and starts implementing what they know.
4. Someone finds a local IT consultant/support person and has them take a look at the problems that are occurring.
5. The IT consultant recommends changes to how IT is being handled and implements the changes.
6. When the cost of the IT consultant approaches the cost of hiring in-house staff or the company decides to write their own software (design their own web site, etc), the company hires a person in-house to take care of their needs.
7. Over time, this process is repeated, since no one IT person can handle all IT related work, all the time. As the company grows and the IT infrastructure becomes more complicated, additional consultants and staff will eventually be needed.