It seems a lot of the commenters are looking at this like a black-and-white issue... Either you're a generalist or a specialist who does nothing else.
I think the best place to be in is right in the middle: the "T" engineer (or "T" marketer, "T" designer, etc). It means you have deep knowledge of one vertical, and a shallow knowledge of many related verticles. (Get it? It's a T shape.)
This type of person is damn good at solving anything within their vertical (and gets paid accordingly), but knows enough about related fields that they're not blinded by their own expertise.
As a technical marketer who also knows some code, some design, some B2B sales, etc, I've found those "shallow" skills to be tremendously valuable. Not because I can promise clients to debug their app (I don't), but because I can communicate with the development team, the design team, the inbound marketing team, ... without hitting a language barrier.
So don't be a one-trick pony and don't be a jack-of-all-trades. Be a T.