You can make your Vigilance macro more useful by adding more conditions to it. If you change it to...
Code:
/cast [@targettarget,exists][help] Vigilance
...then it will try to Vigilance your ToT, and if one doesn't exist because you are targeting a friendly target, it will Vigilance the friendly target instead.
You can make it even more useful by adding a mouseover modifier to get...
Code:
/cast [@mouseover,help][@targettarget,exists][help] Vigilance
...it will try to Vigilance your mouseover (if help), then try ToT, then try targetted (if help). This makes it very easy to moveover someone in a raidframe that just so happens to be outside your field of view, but needs the Vigilance the most.
One step further and you get...
Code:
/cast [mod:shift,@ focus,exists] Vigilance;
/cast [@mouseover,help][@targettarget,exists][help] Vigilance
Take the extra space out between "@" and "Focus ". Not sure why but it reformats it if I put them together.
Which will Shift-cast Vigilance on your focus target (Offtank), otherwise your mouseover (if friendly), otherwise your ToT (friendly that aggro'd), otherwise your target (if friendly).
This style of conditioned macros can also REALLY help with movement in PvP and PvE, like in my Charge/Intervene(Safeguard) macro:
Code:
#showtooltip
/cast [mod:shift][@mouseover,help][help] Intervene; /cast [@mouseover,harm][harm] Charge
This lets you mouseover Intercept (if help) (this includes Mocking Banner), Intervene target (if help), mouseover Charge (if harm), Charge target (if harm), or hold shift to force the Intercept (mouseover then target). The last portion is especially useful if you are targeting a harmful mob, but want to make sure you Intercept the friendly target you are mousing over (it will NOT cast charge as long as you hold Shift).