There are massively misleading statistics on self protection incidents involving guns, predicated on the idea that if you use a gun in self defense you intend to kill your attacker, there were 326 reported justifiable homicides in 2010 [link]
I still think the obvious solution is to ban ammunition. That way the gun owners get to keep their toys and the owning of ammunition would be an offence. Maybe it could be kept and used in licensed gun-clubs, or bought during hunting season with a clear identity / background check in small quantities, each bullet marked with a serial number or something and some kind of trade-in at the end of season.
First of all, many of the guns used in these mass shootings were obtained illegally. Therefore, simply focusing on restricting the legal gun trade won't do much to solve the problem. There needs to be a bigger focus on stopping the black market for firearms, and steeper penalties on those caught illegally selling guns.
I don't think that having access to firearms is the problem. Instead, I think that we have a culture that has attached a sort of mysticism (for lack of a better term) to them. Guns are glorified in today's media, and while I'm not going to blame Grand Theft Auto for gun crime, I think that we've become obsessed with guns without knowing the reality of them. Me and my conservative roommate had a discussion on this a few days back, and he half-jokingly said that every child in America should have to execute a cow- the point being is that people will know what a bullet can do to living tissue.
We should be able to have guns, but we need to make sure that those people who do have guns are going to use them responsibly. When you get your driver's license, you often have to take a driver's ed course and then take a variety of tests. After all, having a car is a huge responsibility and people can get hurt if you don't know what you're doing. Therefore, it only follows that a gun, who's explicit purpose is to cause harm to living things, should also require stringent testing. Background checks should be a given, so that we aren't giving guns to people with certain mental illnesses or a history of violent crime. People applying for a firearm license should also be required to take a gun safety course, so that they won't leave their rifles unlocked in a house with their unstable son. We should also make sure that gun show merchants are legit and follow the same rules as any other gun store.
However, it always makes me laugh when people say that we need guns to "protect ourselves from the government." I mean, if the world's most powerful and technologically advanced military wanted you dead, I don't think that Grandpa's rifle will protect you from the deathbots that roam the skies. America doesn't even for the most part have the same advantages that Vietnam had, such as deep jungle that precipitates guerrilla warfare.
About your last paragraph, look back to 1776. American colonists were nothing more than armed civilians, going against the most powerful military in the world at the time: The British. Who won that?
Disarming the law-abiding citizens will only harm society. The law-abiding citizen won't go on a rampage like a criminal would, and even then, at least the people would have a means of shooting back at the crazed gunman. And in regards to banning assault weapons only - what would that change? Ban an M4, and a criminal can still use his shotgun, or even a handgun, and still cause trouble. Decreasing the legal magezine size won't change much either as changing mags can be done within 1 second for some. Banning one type of weapons wouldn't stop these shootings even if the gun is obtained legally.
Banning guns in any way only hurts the law-abiding citizen. Whether he owns a gun for hunting, defense, or even just to shoot targets or clay pigeons, it's a burden on them. Criminals don't follow laws. If they want to kill someone, they'll find a way to do it.
My point is that civilians defeated a more well-equipped power. Keep in mind that many of those technologies are developed by civilians. Are you telling me that if tyrrany formed in the government, you'd rather roll over and take it rather than fight for your freedom?
The Americans only won because France intervened in the conflict. Prior to that, the Americans were constantly losing.
As for fighting back against a tyrannical government, unless the army decides to unilaterally side with the rebels or other countries intervene on their behalf, any rebellion would be crushed rather easily.
I'd rather prevent it by doing my civic duty in the first place to prevent the government from becoming dictatorial, and by correctly distinguishing between dictatorial behavior and reasonable behavior, and not proving I can't do so by lustily cheering on actual dictatorial behavior.