I have been working in psych for a year and we have only had a few aggressive acts or attacks while I have been there. Every one on staff in the unit has to have training prior to taking the floor on how to handle various situations.
I agree that if you listen to your patients you can usually, (not always) diffuse a situation before it escalates to an attack. A way that our unit deals with it is that we always have a male staff member on each shift. While i realize this may sound sexist, it gives a stronger sense of authority and for some reason less aggression. Also, there is never one person in an area with a patient alone at anytime.
If one of the staff is attacked there is always a person to assist and call the code. Then the person with the best repore for that patient (who is hopefully working at the time) goes and helps talk the patient down out of their aggression.
The patients are informed upon admission and at various times during their time on the unit that if a code is called, those not involved are to go to their room since the unit will be flooded with every working male at that time to assist the staff member with the aggression. Never is it allowed to injure a patient, only immobilize them until they are calmed.