BattlePetsList, as recommended by Desdémone, is a fantastically simple addon that tells you with a straightforward slash command what pets are available in the area you're in. So, for example, my hunter was hanging out in Durotar, and I typed /bpl into my chat. BattlePetsList immediately brought up a list of the battle pets in the area, helpfully colouring the pets I already have red, so I knew not to bother hunting those out.
BattlePetsList can also check other zones for battle pets, but you have to be very accurate typing the zone name, and, what's more, it's case sensitive, so if you want to check out all the pets in Thousand Needles, you won't get anywhere if you type thousand needles. For those sneaky zones with apostrophes in the middle of their names, such as Vash'jir, I suggest checking out the zone section on the world map to ascertain how exactly they're spelt if you're struggling.
So, the command is simple, again, just type /bpl Thousand Needles to get a list of all the pets in Thousand Needles, and to be sure whether you have them or not. I'm not sure right now whether this addon includes pets that are available from vendors in the region in question, so, for example, whether a search of Orgrimmar would bring up a list including the snakes available from Xan'tish. The changelog for this addon also indicates that its developers are considering adding a graphical interface to this function, so that you don't have to type the name of the zone you're hunting in into chat. Great idea!
It seems that it runs from a pre-defined list of pets that are allocated to a zone, rather than scanning, but if you find yourself somewhere while you're out exploring or questing in, it's a really great addon to ensure you pick up all the battle pets in that area on your way through. Gotta catch 'em all, I'm told!
And once you've started with your catching, Pet Theory comes in, recommended by Cloaked Drifter 1. Pet Theory creates enhanced tooltips for each pet, shows the rarity of friendly, and purchaseable pets in the tooltips and the journal, and really clearly shows the rarity of wild pets when you're fighting them. The standard journal does show this information, but Pet Theory makes it far clearer.
Unlike my previous recommendation, Pet Theory also shows the pet information you need, such as rarity and whether you've caught it, on the minimap tooltip as well as on the tooltip of the pet itself. So, if you're flying around looking for pets, you can easily establish whether or not you have a better version of that pet without having to swoop down to it.
Pet Theory also displays a really handy tooltip on every journal entry that (currently) shows what type of enemy the pet you're moused over takes more damage from. If you look to the left, you can see a screenshot of the tooltip that gives a bunch of useful information which would usually only be visible by loading up the pet in question in the preview screen, the screen at the top right-hand side of the pet journal. I would love to see this tooltip display even more information, for me at least it seems only to display the negative combat aspects of my clockwork rocket bot, rather than its manifold positive attributes, so, its increased damage done against certain types of pet would be nice to see.
Pet Theory also allows more sort options in the pet journal than before, including name, level, power, speed, health, and type in either ascending or descending order
Pokemon Trainer, as recommended by Mayank, was the addon I was talking about in the introduction, which I felt was almost too good! This addon does so much to make your pet battling easier, it really is remarkable.
It gives you a tooltip when you hover over any potential opponent, that tells you whether your current team has any pets in it that have stronger skills or attributes against that potential opponent, be it a wild pet, or a quest pet, or any other! So check out the screenshot below:
On both occasions, I'm mousing over a Cheetah Cub I've happened upon while out on my travels. On the left, I can see that Team Blizzard CMs aren't doing particularly well, Crithto and Zarhym are neutral against the Cheetah Cub, while Bashiok is actively a negative choice. I then switched to another saved team, and noted that my Tiny Harvester has many positive abilities against the Cheetah Cub. So, if I want to stand a better chance of winning, the second team are quite obviously the better choice! You'll also notice that it shows whether I own this pet, and whether it can be captured.
Pokemon Trainer provides a similar set of advisory tooltips for battles against teams of pets, too, whether you're battling NPCs or other players. Check out the screenshot below:
The highlighted pets are the active ones, so on the left, my Tiny Harvester, and on the right, my opponent's Phoenix Hatchling. We can see, quite clearly, from the intersecting red and green highlights, that my Tiny Harvester is in rather a bad place against the Phoenix Hatchling. Unfortunately, none of my other pets have a particular advantage against the Hatchling's fiery powers. Team Blizzard would probably have been a better choice here, but given the rules, I can't switch teams once a pet battle has started. If, however, I'd been the opposing player, I could have seen immediately that my Phoenix Hatchling was at quite the advantace against the Tiny Harvester, and that my Onyxian Whelpling would have done very well against both the Chicken and the Tirisfal Batling.
And that's not all, say you have a short memory and have forgotten which of your team do well, or even who's on your team, when you hit the Switch Pet button it brings up a really lovely little dialog showing your three team-mates in 3D, and when you moust over them, it shows their viability against your current opponent, or opponents if you're facing a team.
So you can see from this image exactly what I mean. It shows me that the Tiny Harvester's Metal Fist and Overtune are strong against my current opponent, and the same tooltip would appear if I moused over the other two pets, the Batling and the Chicken.
All in all, Pokemon Trainer is a really brilliant addon, especially for someone like me who's never played Pokemon and doesn't really understand how it all works! Get out there, battle some pets, and have some fun... man it's addictive. It took me two hours to take all the screenshots for this column. For no good reason.