Macros are extremely handy for a variety of purposes. I'm going to list some useful PvP macros here, but I'd recommend you check out the mage forum for more general purpose macros. A great forum thread for mage macros can be found in the sticky here.

Counterspell Macros

#showtooltip Counterspell
/stopcasting
/cast Counterspell

This will make you stop whatever you're doing and IMMEDIATELY counterspell someone. Very handy to make it a twitch reflex instead of getting nailed by lag as you try to stop a frostbolt from casting.

You can also get fancier

#showtooltip Counterspell
/stopcasting
/cast [target=mouseover,harm] Counterspell; Counterspell

This will cast Counterspell on the target your mouse is hovering over (if they're hostile), otherwise it will cast it on your current target as normal. I personally have issues with getting my mouse over someone precisely, but a lot of people love this thing.

Ice Lance Macros

There's only one, really, and here it is.

#showtooltip Ice Lance
/stopcasting
/cast [target=mouseover,harm] Ice Lance; Ice Lance

This will cast Ice Lance on whatever your mouse is hovering over if it's hostile, otherwise it will cast it on your current target as normal. The stopcasting is there for a very special reason. Ever notice how you can only really seem to get Frostbolt -> Ice Lance to work right if you're far away? This is because Frostbolt won't actually break the frost nova until it reaches the target, and Ice Lance can still get the Shatter bonus (and its general damage bonus) so long as the nova is intact when Ice Lance leaves your hands. The farther you are away, the longer you have after Frostbolt casts to cast Ice Lance.

So why /stopcasting? Well, there's a little lag between you and the server. Ever notice how you can start running on your mount if you press forward before it finishes casting? It's the same idea with every other spell in the game. If you ice lance just before the frostbolt finishes, the frostbolt will still cast and ice lance will come off a lot earlier. In fact, if you time it just right, you can make Ice Lance hit the target BEFORE the frostbolt! As you get the hang of it, you can even pull off frostbolt -> ice lance point blank, something impossible without this macro. If you'd like to get proficient with this, I'd highly recommend getting a mod called Quartz (see mod section), as it will show you just how much lag to compensate for on your casts.

Why the mouseover? The main reason is for shaman totems. If you see an earthbind totem, for example, you can hover your mouse over it and just tap this macro to kill it with ease. Works great on killing any totem fast without messy retargetting. It can also be handy when you're fighting multiple enemies and want to nail someone that's caught in some freeze effect while still focusing on your current target. Much less used in that instance, but still handy once in a while.

Remove Curse

#showtooltip Remove Lesser Curse
/cast [target=mouseover] Remove Lesser Curse; Remove Lesser Curse

This one's great for taking off curses on party members, especially Curse of Tongues on your pally. All you have to do is hold your mouse over your party member's unit frame (portrait with bars, etc), hit the hotkey, and the curse will be removed. Works as normal if you're not mousing over anyone.

Ice Block

#showtooltip Ice Block
/cancelaura Ice Block
/stopcasting
/cast Ice Block

This one will stop whatever you're doing and immediately ice block. Very handy for quick reactions on AP pyros, death coil, etc. This will also cancel an existing ice block, so you can just tap the button twice for a quick debuff clear or whatever you need. There's also an interface option that can fix this, but this macro works fine on its own.

Water Elemental Summon

#showtooltip Summon Water Elemental
/use [nopet] Xi'ri's Gift
/stopcasting [nopet]
/cast [nopet] Summon Water Elemental
/stopmacro [nopet]
/petpassive
/petattack [target=mouseover,harm]
/stopmacro [target=mouseover,harm]
/petattack

This one's a bit of a doozy.  If you do not have your water elemental summoned, it will use your trinket (replace Xi'ri's Gift with your damage trinket, or remove that line and the /stopcasting line following it if you'd rather not use your trinket with it, but it'll add to the elemental's damage), then summon it.  If you press it while the elemental is out, it will go to passive mode (so it won't randomly change targetes), then attack your mouseover target (if it exists).  If you're not mousing over a hostile target, it'll attack your current target.

So while it looks confusing, just tap it twice and it'll come out and attack.  The mouseover bit is so you can have it attack something else while you're trying to CC, for example.

Water Elemental Freeze

#showtooltip [pet] Freeze; Summon Water Elemental
/cast [nopet] Xi'ri's Gift
/stopcasting [nopet]
/cast [nopet] Summon Water Elemental
/stopmacro [nopet]
/cast Freeze

Same idea as above for summoning, but the second click will simply bring up the ranged freeze reticle.  The first two lines will make it so it will show the cooldown on the elemental's freeze ability if it's out, so you can keep track of that more easily (especially when the pet bar doesn't show up).  If your pet is not out, it'll show the cooldown on your elemental summon instead.

Polymorph

#showtooltip Polymorph
/stopcasting
/cast [target=mouseover,harm] Polymorph; Polymorph

This can be useful for quickly polymorphing a separate target than your current one, with a check to make sure the target you're mousing over is actually something you can sheep (in case your mouse is harmlessly resting on a teammate).