There's an interesting article about it here, starting with a discussion of the words 投手 (pitcher) and 打者 (batter).
From the writers perspective, 手 indicates someone employed for some concrete ability, whereas 者 can refer to a particular role or standpoint, often temporary (although in some cases it means 求道者).
So because the 'batter' isn't a fixed role (you have the same pitcher but a series of batters), 打手 wouldn't make sense.
Similarly, 運転手 is a person who makes their living from driving, 運転者 is the driver at a certain time.
For the other suffixes:
家 often means 専門家 (a specialist in something). It does seem to often be used for artistic occupations, as Chocolate said.
作家 is someone who writes books for a living. 著者 is the author of a particular book.
士, when it isn't used for military occupations (戦士) usually indicates some sort of official certification. By comparison, 師 is a master of something without relation to qualifications. However, some jobs where official certification is usually held use 師 instead of 士, e.g. 看護師. This comes from replacing two terms (using 婦/士 for female/male) with a single gender-neutral form.