I agree with Sheza, I think choose and approach and always do exactly the same thing, we currently have an issue with throwing things, and we are using the same approach each time, I won't say its all better, but we have seen an improvement.
We use a naughty step, he doesn't come off it and sits there until he is ready to say sorry, we then talk about what not to do and normally after he is much nicer, sometimes just mentioning the naughty step means he will stop straight away, sometimes he just needs to go as time away from us calms him down
Also treating his behaviour exactly the same way helped DH and me who were also arguing a fair bit about what to do.
Not sure about books, could be worth asking at the library, they are very helpful