I would say that from my experience, the benefits of an in-house designer outweigh an outsourced one.
Outsourced programming is great, because there isn't much room for them to go outside what you want.....unless they do the job wrong or the specifications were too vague.
Design, on the other hand, is a lot of back-and-forth work. You want things to look just right, change this, fix that, try this, etc.....
Outsourced, you will lose a lot of time on just this one aspect. Unless you don't really care what your sites look like and let the outsourcing company just build you something with the sections you ask for.
As for 2 years, I think that's a great turnover time. The hiring process is a pain, but you will get someone with fresh ideas, fresh designs and hopefully updated skills (your current designer might not keep on the edge of technology if he has a comfy job where it's not required)
Those are my thoughts for you
