Specialist vs. Generalist
I've been asked the specialist vs. generalist question a number of times and I always have a tough time answering because my answer really is: "It depends." This choice doesn't just affect IT related careers, but probably impacts most other careers you could choose as well.
It's widely accepted that specialists have the potential to make significantly more money than a generalist. This is due to supply and demand, and very few people know all the intimate details about one narrow area. Oracle DBAs and brain surgeons are two types of jobs that are typically filled by specialists. Why? There's a LOT to learn, and a lot riding on the shoulders of these people. Acquiring the specialist status isn't easy and will take significant time and effort on your part.
Generalists, on the other hand, are typically in demand more regularly and have an easier time finding a job or contract to fill. While there are more opportunities at times, the pay has typically been lower for these opportunities. This role will have more diversity in the day-to-day, more opportunities to grow in areas you hadn't previously considered, and possibly even provide a niche for you to transition to more of a specialist role. This could be a position that does UI development, general ad hoc reporting, and managing a couple interns.
The Right Path
So how do you decide what path to take? Here's a big hint: If you're thinking about becoming a specialist because "they make more money" then you're doing it wrong. Being a specialist means that you'll be completely entrenched in the main area of your choosing... what happens if you realize that you really don't love your chosen specialty?
A while back I was approached by a CIS student on the topic of database related careers. I love databases and I love talking to people about them, though this particular conversation saddened me a bit. He mentioned that after learning a bit of PL/SQL and basics about DDL, he was qualified to make a minimum of $80,000 as an Oracle DBA. Hm, if only it were as easy as taking a single 3-credit database class with no real experience or even an understanding of what a DBA does...
If you're just starting your career and you don't know what you love and want, start as a generalist. Learn a few new languages. Learn more about OOP. Learn more about databases. Learn more about networking. Learn Linux. Even specialists in 2014 must continue learning because the landscape of technology is changing faster and faster. Starting out by learning as much as possible will prepare you to be a specialist if you fall in love with a single path.
To have an open mind, eager learning, and the ability to discern when "the old way" is still the best way is invaluable. Not every new fad should be put into production. Make sure you aren't the new fad!