Ok in all but the most complex of battles , I almost never give HP to monsters. I just sort of wing it. I've got three basic categories, "Orcs, Ogres, Boss"
"Orcs" are your basic cannon fodder. 1-2 hits are a kill unless the players roll really bad, don't pay much attention to how much they do for the most part.
"Ogres" are your Gnoll Chieftain's, your bugbears your minor boss etc. These usually I let die after 35-50 Hp mostly 3-6 hits or so. I am fairly careful to regulate kills on these types.
"Bosses" have a huge range till they die, usually I'll wait till the party has used about 75-90% of their resources before it drops. Sometimes if the players have a great plan I'll let it die like a chump.
Now there is one rule I use with this, if I am winging the encounter (like usual) I don't kill pcs. Never. PC death I reserve for Major encounters that are carefully planned out and can with bad play lead to a TPK. This should be reserved for the rarest occasion, when the stakes are very high.
This being said my #1 ability I possess are my compelling combats, it's s much easier to do when the fight ends pretty much exactly when I want it to I am the KING of railroading DMs but remember I was able to sustain a 31 year long campaign this way. This way is prob for very advanced DMs but it is quite liberating.
Carefully award kills and spread the wealth!