It’s a bit like the difference between an architect and an engineer. The architect designs an elegant building with its visitors or occupants in mind, and then the engineer comes along and makes sure that it’s structurally sound and free from technical issues.
Although it’s possible to have one without the other – and the most basic house may not need either – it’s usually best to hire both an architect and an engineer for any original or important project.
In the same way, the more complex your website is, the more likely it is you’ll need to hire a web developer. A simple Wordpress site might be enough for your personal blog – but as soon as you begin to do things like offer products and services, it becomes more important to recruit someone with a knowledge of client-side scripts like HTML, CSS, and JavaScript. Manipulation of these ‘languages’ determines what your customers will see when they browse your website. It’s very difficult to do anything interesting without them. (By contrast, back-end web development determines how your website will interact with the server that’s hosting it.)