Using a Bot or Botting is using a third program that plays the game for you and with no involvement requires from the user aside from starting it up. Bots are often used to level up, farm items or even participate in battlegrounds while the user is away.
Botting is strictly forbidden by the World of Warcraft Terms of Service and the penalty for botting are harsh, usually involving a permanent ban with no grace period.
You can't, really -- not for certain -- but bots tend to act in repeated patterns like always circling a zone along the exact same route, targeting only specific MoBs. These patterns will go on for hours. Be careful, though: You could notice that same behavior from a non-botting player who's just farming an area.
If you suspect someone is a bot, whisper them with an innocuous question like, "Hey are you going to be here long? I need X mobs, too." Not all players will answer you, some don't speak your language, and some just want to be left alone. But a bot will never answer you. Another thing you can do is tag the mobs that the player is killing. This will mean that you will get credit for the kill and they won't be able to loot (or skin until you loot)...you will get a reaction from most players if you do this, but a bot will just proceed as if nothing happened.
A player will probably stop attacking the mob. A bot will help you kill it and then run over and try to loot your kill anyway. If you do this a player will likely get rather upset with you, especially if you do it repeatedly, so you want to be relatively certain that it's a bot.
The best option is to simply open a ticket to a Game Master, usually as a Behavior complaint. Include any information about the botter, including his name, the zone you spotted him in, and a brief description of the suspicious behavior. A GM will get in touch with you and ask some questions before starting the investigation.
You may still see the bot around for quite a while after you've spoken to a GM. Part of the reason for this is that, because of the harsh penalty for botting, Blizzard needs to be certain that a player is botting before taking action. Also, Blizzard tends to make an example out of botters. They do this by mass-banning botters discovered over a time period. This also has the side effect of giving Blizzard a chance to see which accounts the bot interacts with so they know whom else to ban, and then "prosecute" all parties at once.
While botters may not be hurting you directly, they do create an unfair advantage for those who are unscrupulous enough to use them.
Put simply, it encourages players to engage in activities to succeed in the game without actually participating in the game. Either they can find/make a bot to do their work for them, or they can pay real world money to someone who can do that work for them.
The most renowned botting client was WoWglider.