Hiring a consultant is just a form of outsourcing. If you are competent and have time then do it yourself. Most contractors, including myself, don't have the time or the inclination to handle marketing well. So, I contract it out. If I wasn't busy I might do it myself but my time is better spent on operations, personally. Bottom line is that it is an individual situation play. If you do outsource though, don't do it on the cheap (see comment on Small Business Development Council). Get the right person that knows what they are doing.