Besides inspecting your own character, WoW Heroes can rate your guild as a whole, giving you the chance to see where you rank relative to your guildmates. My score of 709 puts me behind one of our ret paladins, and ahead of one of our arms warriors. WWS shows that last night, on our Naj'entus kill, my dps and damage dealt fell between those two, as it should. The ret pally was 7th on damage out, I was 8th, and the arms warrior was 9th. The paladin out-dps'd me, and I out-dps'd the warrior. When you look at it that way, I'm actually doing reasonably well. Crisis of conscience averted.
On review, I found that part of what hurt my dps before was an unnoticed pet death. I vowed never to let that happen again, and here's the tool I'm using to keep that vow:
/castsequence [nopet] reset=5 Call Pet, Revive Pet
/cast [target=pet,dead] Revive Pet
I stuck these two lines at the top of my main attack macro. If you have no active pet and there's no pet corpse on the ground, the first line tries to call your pet. If that fails, it must mean that your pet is dead, so the second keypress will rez your pet. If your pet's corpse is on the ground, the first line is skipped entirely and your pet is immediately rezzed. If your pet is alive and well and at your side, neither line does anything. It's a really superior semi-automated way to keep your pet up.