A few thoughts, nothing definitive or comprehensive.
Dragons? One man, one arrow, one bird tired of the stink. Course an entire town went up in flames around him, but, hey, rebuidling's easy with a dragon horde.
Problem with monsters in stock fantasy settings is that they don't catch you off guard either on the emotional/visceral level or on the strategic/cognitive level. Play NetHack or and you know pretty much what to expect. Even Angband and variants just spoon up monsters that end up being variations on a theme. Graphics don't matter, the same holds true for most CRPGs, but hte names of critters have been changed to protect the guilty.
Tactics should count.
Tactics should not be the same from foe to foe. A skilled swordsman will approach giant, hungry vermin differently (though with the same skills) than another swordsman. What if some swordswingers subscribe to some code of honourable combat, while others do not?
All enemy types should be unknown the first time encountered by the PC, though some attributes can be guessed. Allow for some hints/rumours/knowledge to be avaiable to the player/PC. Not all should be accurate, though.
Avoid stupid variations - "Yeah its not a kobold, its a fire kobold so it can breathe fire before squeaking as you stick it with a sword."
Enemies should have motives and behaviors that distiguish them from other enemies both of same and different kinds. PC walking through the woods is set upon by wolves. If the wolves are hungry they pursue and attack to kill. If the wolves are protecting their young or their territory they may only pursue to drive off a perceived threat. Ambushes get set. Plots get hatched. Assassins get dispatched for revenge. Pleas for mercy are offered.
Particular enemies that survive an encounter, if given enough time, should have taken steps to prepare for subsequent encounters. Subdued that naughty fighter with a Hold Person spell so he could give the secret password? Next time you face off he's got a lovely new ring on his finger that protects him from the spell, or he's got some buddies who sneak around back and whack the offending spellcaster before (s)he can act. Yes, it would be a nightmare (highly impractical) to code each single possible foe, but multiple behavior sets could be created and randomly determined at the time of an encounter, especially if its a non-plot randenc.
In short, monsters, human and otherwise, should surprise and challenge the player the first time through and should do likewise to the PC every time through.