The question can be open ended, as it depends on what kind of website you need. Is it just a blog? Is it a company website? Is it a web app? The answer would depend on your needs and also on your experience, but here is my take:
You know how to build websites:

  1. If you are an experienced developer and what you need is not so complex, I think the answer is crystal clear.
  2. If you have experience and you are trying to speed up development, outsource.

You don’t know how to build websites:

  1. If you don’t have experience and want to learn about web development, then follow some online tutorials and courses in places like Treehouse, Code School, Codecademy, etc. and build your site as you are learning. If what you need is somewhat complex, it may take a while to get it up and running, but you will learn the most.
  2. If you don’t care about learning and just need a quick site, just use a site builder like WIX, Squarespace, WordPress, etc.
  3. If you don’t care about learning, you need a fast release, and a very customized product, then just hire a WordPress support service like WPTangerine or WPCurve to do it.

In either of the cases, you are going to want to know the basics of websites in order maintain it in the future, except you also want to hire a team to help you with that.