This article discusses the issue of specialization vs. generalization in terms of freelancing. Although it was written by a freelance writer, I think the same issues arise with freelance designing.
The main question at hand is "do you need to specialize to succeed as a freelancer?" There is really no correct answer, but I found the question to be extremely relevant to my questions as a designer who is close to graduating. As I begin to plan for my future after graduation, I have been faced with several questions. Do I go to grad school or go straight into a career? If I do go to grad school, what do I study? Because I am interested in so many different aspects of design, these questions are so difficult for me to answer.
Basically, this article goes on to say that most freelancers will at some point specialize and at another, generalize. Laura Spencer, the author of this article, points out that over time, the demand for any given specialty will change. This means that in order for specializing freelancers to succeed, they must be willing to change their specialty.
I think that as a designer it is important to be familiar with many different areas of design (including things that design is incorporated into such as programing) to be successful. Once you find a few specific areas that really interest you, specialize in them and become great at them. You can always look to other specialists for help in those areas that are not of interest or understanding to you.