Mixture, more or less. A lot of micromanaging.
I usually give dwarves a set of skills, and they're assigned when they arrive/grow up(which hasn't happened in a while...) or when I feel need to reassign them: All craftsdwarves/mechanics will perform all categories under crafts and mechanics, all smiths will have all smithing labors enabled. I get specific about farming though: all farmers will manage fields, butcher, tan, and clean fish, but there is a low-priority group that does everything besides cooking, brewing, and cheesemaking, and a high priority group of farming dwarves who already having one of those skills and perform those three labors, but exclude the low-priority tasks. The stoneworker group performs mining, masonry, detailing, and architecture.
When I have want for high-quality goods I will use a workshop asking for a specific skill level, usually above proficient, or assign it to a specific dwarf/set of dwarves for training.
I never use therapist, I only use the in-game menus.
I also don't assign specific dwarves for hauling duties; everyone is part of a labor group, and peasants usually end up wherever I have a shortage of workers, usually stoneworking and smithing, but sometimes woodworking. Even soldiers are members of a labor group in their downtime. Hunters always end up in the militia as marksdwarves.
Sometimes If I have enough dwarves in labor groups I'll only assign migrants labors they are skilled in.