I returned to World of Warcraft after 3 years and I was always big on collecting pets with all of my 24 Level 85 characters. Therefore I have a huge amount of duplicate (understatement there) pets. With the new account wide pet collecting system, is there any reason to keep them around? I ask this, because I saw an achievement where you can "steal" a pet from another player during a fight. Is that pet then permanently gone?
Most pets can have different base statistics (speed, power and health). If you find a pet and you really like its move-set, you could collect multiple versions of the pet in order to have a high health version and a really quick version etc.
Also, you can cage most pets and then sell them or give them away. Some pets are Bind on Pickup when you obtain them, but learning them and then caging them allows you to give them away. Being able to store a few copies allows you to free up space in your bag whilst you decide what to do with them and also not have to mess around with caging your own version just so you can cage a duplicate that you got. Basically it gives more flexibility.
I'm not completely sure what you are referring to with regards to the "steal" a pet. As far as I am aware, you cannot steal pets from other players.
If it is showing 3/3, it means you have 3 of that specific pet and you can't collect any more until you either cage them or release them.
Aside from multiple breeds, a reason to have duplicates of the same pet is that you can use more than one of the same pet in the same battle. For example, a team of three P/P (full power breed) Yellow Moths is viable in pet PvP battles. 2 * Bonkers is considered useful against Yu'la.
Another reason is the format of the celestial tournament: you cannot revive pets during the instance. However, many strategies make use of the same pet in different fights in the tournament. As the first pet may die in the first fight that pet is needed for, it is helpful to have a second pet of the same type for use in the second fight.
You can keep up to 3 of a particular kind of pet at a time. Since you can field up to 3 pets at once, having multiples of the same particular pet affords you redundancy, which may be valuable in some situations. However, particular pets differ in a number of ways, not all of which are easy or possible to adjust, so some trainers may wish to keep multiple versions of a particular pet just as a matter of policy.
Most obviously, pets have differing levels. Since the more common pets can appear in zones with much different level ranges, it can save you a lot of time to catch a higher level version of a pet you've already caught once before.
Pets also have different "qualities": poor, common, uncommon, and rare. The closer to rare a particular pet's quality is, the better its stats will be. While I typically release lower-quality pets once I've caught one of higher quality, it's important to note that quality can be upgraded through the use of Battle-Stones, which you can get from wild pets, the daily Tamer reward bag, and from other players.
Finally, as the others have mentioned, pets have varying "breeds" that determines whether they favor Power, Speed, Health, Balanced stats, or a combination of two of those characteristics. Some pets only have one possible breed for particular pets to embody, while others might have between two and ten different breeds available. As a particular pet's breed is fixed and cannot be changed, this is one of the main reasons why I personally catch multiples of the same pet: I might be holding out for a purely power-focused pet, but if I come across a Rare quality version that favors a combination of power and speed, I'd like to catch and use that while continuing my search for the pure-power breed, especially if the particular pure-power pet I eventually pick is of poor quality: that poor pure-power pet will take prohibitively long to improve with quality upgrades and leveling, so it's good to make do with one that's almost perfect while pursuing the project for a perfect pet.