What causes violence:
1- Dumbness. Dumb people resort to violence. If you ever have to fist fight with someone or point a weapon to someone, you are a VERY dumb, moronic, stupid, idiotic person. Why causes dumb people? Bad education and dumb parents (and dumb people at the surrounding).
2- Drugs. Dumb people take drugs. Dumb people resort to violence to get more drugs.
3- Pooverty. Anyone poor and smart enough will do something to get out of this situation. Get a job, or create your own job, or whatever. Anyone with any education or politiness will never resort to violece. Now, dumb people, when they need money, they'll just punch someone in the head until the golden coins pop out of their ears, and they'll take the coins and spend it on beer.
Note: Anyone dumb enough to resort to violence will do such a thing no matter how many times they've played GTA San Andreas.
You wanna cut down crime? You wanna cut down violence? Don't ask for people to get weapons - chances are that dumb people will get those too and shoot you in the head. What you gotta do is to get kids who are possibly going to grow up being idiots and give them books and proper education. There's NO way to solve this problem NOW, in a similar way that there's no way to solve the terrorism problem now. BUT... one can solve the violence problem in the future. The answer is to raise the kids in a way that they don't have to be violent, or are smart enough so they don't have to.
By the way, by "dumb" and "smart" I don't mean how good your grades are and how high or low is your IQ, I mean how well educated you are about respecting others and our world. The Unabomber was a brilliant genius, but he was a dumb motherf***er. Now, someone like Forrest Gump with an IQ of 75 would be someone smart, get it?