Grinding is repeatedly killing the same monster over and over, for experience points (exp), money, or reputation. In World of Warcraft I would not generally recommend grinding for exp, as quests are usually the better alternative. But if you already know all the quests available to your character, because you already played several character of the same faction, grinding might be a quick way to level.
The advantage of grinding over questioning is that you do not lose time traveling from and to the quest givers, or searching your target target. The disadvantage is that you do not get the quest rewards, or the reputation that quests give. But if you are already equipped with the very best gear, advanced by your higher level characters, chances are that you do not need the quest rewards. And the reputation with the major cities that quests give is not strictly necessary either.
The idea of grinding exp is to get the maximum exp per hour. If that sound does not sound obvious to you, you'll be surprised of how many people do not grasp the "per hour" part of it. Many people try to grind monsters of their level, or even a level or two above them, because these monsters give the most exp per kill, but this will do that, not only do the flights take longer, you are also likely to end the combat with less health and / or mana than you started with, necessitating some downtime between fights. So the most important grinding advice is trying to find mobs a bit lower than your level, which still give good exp, but which you can kill a lot faster and with less downtime.
For grinding, you might also need to change your tactics, especially if you are a spell master. For example my priest could kill a monster with spells, but at the end of combat he would be low in mana, and then need to sit down and regenerate it, which takes valuable time. So instead of using spells all the time, he starts the combat with spells (Mindflay, Shadow Word: Pain), then shields himself and finishes the monster off with his wand. That takes a bit longer for the kill, but during the wand phase he regenerates mana, and ends combat with full mana, directly ready for the next pull again. My shaman only uses melee combat and lightning shield to deal damage. If he finds a spot to which he can pull several monsters one after another, he also plants stoneskin and healing totems, which again reduce downtime, by making him have more health at the end of combat. If you have a warrior, experiment with the different situations, sometimes using defensive stance is a good option, because again you end the combat with more health, and have less downtime before the next combat.
I'm not going to give out a list of monsters to grind, because the perfect target for you will depend on your level, your class, and how crowded the most popular grinding spots are. There is no use in trying to grind against strong competition: if your downtime is caused by there not being enough monsters to kill, moves somewhere else. There are some easy principals that make a monster good for grinding: The mob should not be "social", that is you need to be able to pull them one by one. You should choose a mob which does not run away when low in health, because chasing after mobs costs time, and risks aggroing other mobs. Humanoid monsters are often preferable, because they drop cash, and less item loot. If you want to grind beasts, do it not too far away from the next vendor, because you'll lose time when your bags are full and you need to sell your loot.
If you can, grind mobs which give reputation points, for example the furbolgs which give Timbermaw fact. Unfortunately there are not all that many fact giving mobs, and they are usually heavily camped. A good place to look for mobs to grind is the various caves, for example with yeti or ogres, because the mobs there are often close to each other, so you do not have to walk far between two combats. If you happen to be a miner, these caves often also have mineral ores in them, for an added bonus. If you happen to know a quest that requires killing exactly the mobs you wanted to grind anyway, take the quest as bonus reward.
There are a couple of add-ons, like Telo's Infobar, which are able to tell you how many exp per hour you earned in your current gaming session. These are valuable tools in getting grinding right. Finding the optimum between killing speed and exp per kill is not always easy; you'll better experiment a bit. You may need to quickly logout and log back on to reset the counter if you want to test exp per hour of a particular batch of monsters.
As I recommend grinding only if you already have some high-level characters, if you do not start with questing. One of the best tricks to speed up leveling is not to play with the character you want to level. Just go dungeoneering with your mates using your high-level characters for some days, and then come back and grind your alt using the rest exp bonus he accumulated, so doubling your exp per hour. If you grind your low level character all the time, not only will you get less exp per hour, you will also quickly become terribly bored.