I think the specialist/generalist answer depends on the work environment as much as anything else.
For example, I have experience working for several years in different aspects of software development. This
yields me almost nothing in a big corporate environment, where each function tends to be divided up pretty
rigidly. I'm expected and required to be very good at my current role, almost exclusively. A larger company
usually has the ability to pay for in-house gurus on specific technologies; smaller companies tend to get contractors for that kind of
expertise.
However, my competence in multiple roles was well suited and valued when I worked at a relatively small
startup software company. Given current projects, I might be performing multiple roles in several projects instead
of a single role in multiple projects. I prefer being a utility player.
Guess which I enjoyed more, and which I'm in now?
I just had business cards printed up listing my various roles. I figure that if I get laid off soon, I'll be able
to find a job doing something I've done before related to something I know. We'll see. I'm hoping that cash-strapped
companies will be interesting in getting a 4-for-one kind of employee.