I agree with you that spanking is wrong and will only reinforce the behavior you are trying to stop. Your son is hitting becasue he is limited right now in ways of communicating his anger or frustration. That being said, continue to let him know that "we don't hit because it hurts" and place extra praise and reward for his good behavior. He'll learn the difference with your reactions. I am sure he'd much rather have a happy praising mommy than a scolding mommy.
Tell him that you understand he is angry (or frustrated) and it's okay to feel that way but hitting is not good.
Try to get him to work out his emotions by giving him pots and pans to drum on (although it might make you nuts) or dancing or clay to pound, dough to need, etc.
Spend more quiet, cuddly time with him to help pacify some of those pent up emotions.
Teach him how to do more things so he won't get so frustrated (perhaps some of that hitting comes from his frustration at not being able to do certain things).
Take note of what he is doing or what his mood is before he starts to hit (is he tired, hungry, etc). This will help you note the signs so you can head it off the next time.
Let others in your family know that they should reinforce your lessons on hitting so he is not getting mixed messages.
My 20 month old usually resorts to hitting when she can't get her point across verbally and she gets frustrated (or she just isn't getting her way).
I have never read the book you mentioned but "What to Expect..The Toddler Years" gives some good advice about hitting and discipline in general.