I'm wondering if there's a way to intersect two polygon layers, take the intersection, and remove that from one of the polygon layers, making a new layer out of whatever is left over? Basically, the idea I have is one of "punching holes" in a map of Africa where the holes are points around which I construct some sort of buffer. I have QGIS and ArcGIS 10.0. Is there a built-in or user created script for this?
It sounds like you want Symmetric Difference
In ArcGIS you could use the Symmetrical Difference tool http://resources.arcgis.com/en/help/main/10.1/index.html#//00080000000r000000
QGIS has it too:
Using ArcGIS Desktop:
This sounds like the Symmetrical Difference (Analysis) tool which requires an Advanced license.
If you need to do this using a Basic or Standard license then use Union instead, and Select out just those features with attributes from one or other but not both input feature classes.
Also, the "punching holes" term suggests that Erase may also do what you require but once again you need an Advanced license. A key difference between it and Symmetrical Difference (and Union) is that attributes of only one input are retained in the output.