One of the things about the game that's interesting is the way it implements the traditional Resident Evil item crunch, which forces you to conserve your items and ammo instead of going wild.
Enemies in RE4 usually drop items when they die. Typically, they can drop money, ammo or health.
But its not completely random what they drop. My first time through the game, I hardly ever saw an enemy drop an herb. My second time, I was less cautious about keeping my health in the green, and one dropped a green herb. Further, if you have a lot of a certain type of ammo, then it's much less likely that foes will drop it. If you're completely out of a type, then foes will be much more likely to leave that behind. Items found in crates, on the other hand, are always the same.
In other words, the game checks your inventory, and seeks to remedy dire deficiencies. It also won't drop a type of ammo if you don't have a weapon that can utilize it, which is nice of it. But mind, this is most useful when you're fighting a legion of normal foes, since then you'll get a lot of item drops. If you're fighting a boss that takes a lot of punishment, and are unable to generate those item drops, it's a lot less helpful... especially if you're going into that boss with a necessary ammo deficiency.