I think a short turn delay on casting spells big enough to destroy a city coupled with having to cast counter spells manually is the way to go. Building "anti magic building" doesn't sound good, nor add to strategies revolving around slinging spells across the map.
There should not be any way to auto counter spells (buildings or otherwise). Countering should be able to be done through either a dedicated counterspell spell, or casting the opposite spell.
eg: using the example above, Sov 1 starts casting volcano on your city. Turn delay 2 turns (i said short!!). If Sov 2 decides he wants to counterspell, he needs to the mana and a spell that will counter the volcano spell. So, he can cast a "Counterspell" or, he might have lower land, he could cast that as the counterspell to Sov 1's volcano.
In my belief the general counterspell should be more costly than a specific counterspell. For example, "counterspell, might cost 50 mana, while "counter raise land spell" should only be 30 or so.
End note: from playing the game right now, some (i haven't used all of them) spells have a max range that they can be cast. The max range is fairly short too (like 4 squares).