Some people really like the idea of having multi-functional teams. (Anyone from the agile work will probably tell you this is, as much as possible, the way to go.) A team where everyone knows how to do anything that needs to get done in order to build a product.
Some people hire specialists instead. Designers, front-end developers, back-end developers, user experience specialists, quality assurance, copywriters, etc.
A friend from Dominican Republic asked me whether I prefer a multi-functional team or a more conventional team where everyone is sort of an specialist doing specific things.
My answer is that it depends. More specificly, I think you should strive for getting as much as you can from both approaches.
First of all, for a complex field like software development, I think it's extremely hard to find a team that's completely multi-functional. Sure, you can have a designer that knows how to code HTML pages, and a front-end developer that also knows database design, but the more complex it gets, the more "specialized" you'll have to get to find the required expertise.
(I don't know about you, but I'd rather have a security specialist taking care of my bank's system. Nothing against designers, but I prefer a person that lives and breathes security to be in charge of that.)
On the other hand, having a team where everyone can do it all is extremely versatile and flexible. Anyone can pick up the slack of another person and the overall productivity of the team will be really high. The number of possible bottlenecks by having someone busy is reduced because anyone can work on anything at any time. This is really cool.
As always, I think there has to be certain balance.
Identify the things you have to do and determine whether they deserve specific knowledge. If you are working on a simple website, you might try to push for more multi-functionality, but if you need more complicated and specific behaviors, you might need to look into someone whose focused only on that. Sometimes, you don't even need specialists as part of your team, and you can get away using them as a consulting role. It really depends how much you need from them.
In my experience, complex and long applications require more specific specialities in the team, while simpler, shorter projects can get away with the do-it-all type of person.
The last thing I'd say, is that no matter where you end, always try to be as multi-functional as you can. Even if you have 5 people with complete separate responsibilities, make sure they understand what a "Team" concept is and how it functions. The more they help each other, the better your journey will be.