This isn't quite correct. Contractors and freelancers (of which I am one) charge substantially more than the clients' employees salary ($75-150/hr, typically, vs 70-100k/year). This is accepted due to the cost savings of not paying for insurance, 401k contributions, etc.
In my experience, I charge more (than I made when salaried), but only bill the 4-7 hours a day really, actually working. I'm much more productive, work less hours, and make more money doing it.
Specialties are certainly a lucrative way to go, but not necessarily essential. An all-rounder is more likely to have a long-term relationship with a client (depending on the industry of course).