Okay, here's my taking on cat aggression. I have been treating several cases in the past couple of months (I now work as a cat therapist) and I'm glad to say with excellent results so far.
The first thing, is that there can be several reasons for cat aggression. This is a behavior problem that I refuse to give advice about over the phone (I do that for minor problems like furniture scratching etc.). Each case is different and I need to see the cat and have a good talk with the owner before I can figure out the reason for the behavior and then decide on the treatment.
One thing that goes for all of these cats is to have a thourogh veterinary check up before trying any behavioral treatment. Sometimes a neurological problem will make a cat aggressive, or a hormonal imbalance. Other times, if the cat is in pain because of some medical problem, he will turn on his owners whenevre they're around.
Once medical problems are out of the way, we need to check why the cat is being aggressive. Most of the times, it's what I call a circle of fear. The cat may have been aggressive once because of some stimulus (seeing or hearing another cat or an animal outside, or visiting the vet can be triggers). The owner's natural reactions is to at least shout at the cat and sometimes even hit him. The cat becomea afraid of the owner and anticipates retaliation in future encounters. He then attacks in advance because he is in fear of the owner. In my experience, any sort of punishment is not only useless, it actually makes things worse. This includes shouting, hitting (even lightly), squirting water or locking the cat away (usually dragging him by the scruf of the neck into exile). The cat only becomes more fearful and will be more liketly to attack next time. The owner is also upset and his body language delivers a message of anger and/or fear which makes the cat even more anxious and prone to attack. It's a vicious circle and things can get bad pretty quickly.
The only way to break it is to understand the situation and make an effort to break the circle. No punishment of any kind, only love! You need to learn your cat's body language and avoid attacks before they happen. If you see the tail twitching when you pet the cat, then say "good kitty" and move your arms away. Avoid direct eye contact and be as unthreatening as you can. Also, use interactive play as a form of therapy. Get a fish rod type of toy and play with your cat for at least 15-20 minutes 2-3 times a day. When the play session is over, give your cat a treat. This helps to break the tension between you and associate your meetings with positive things.
Above all be patient. Yes, bites and scratches can be painful and you want to try and avoid them by learning to read the cat and break contact before the attach occurs. If you're too late, don't panic - if your cat is grabbing you with claws and teeth, entice him with some toy or with your other hand and gently break free. Don't shout! Talk to him gently and lovingly through the whole thing and don't look him directly in the eyes.
Remember the play sessions - they're crucial! And make sure it's a toy that lets you interact without getting your hands near the cat's claws or teeth.
It may take a few weeks, but if we are talking about fear induced aggression, this is very effective. Some cats are so high strung, you may need to consult a vet and use some form of psychiatric drug to calm down the cat and allow the behavioral techniques to work. Your vet will need to prescribe something that relaxes that cat but doesn't make him sleepy.
There are other types of aggression, but this is the most common. The best thing really is to consult a good behaviorist.
You may also want to check out this article:http://www.thecatsite.com/behavior/aggression.html