GURPS Magic gives a trio of armor enchantments that see a lot of use in fantasy games - Fortify (improved DR), Deflect (improves DB), and Lighten (reduces weight).
One thing that annoys a lot of folks is that there is no limit by materials on these enchantments. You can put Fortify +5 on a ratty t-shirt if you really wanted to. Basically enchantment is divorced from the quality of the underlying item.
Here are a few ways you can tie the maximum enchantment to the underlying material.
One Level Per Point of DB or DR - you can't exceed the DR of the underlying item with Fortify. For split DR, use the highest value. So cloth armor (DR 1) can be fortified up to Fortify +1 and DR 2. Heavy leather (DR 2) up to Fortify +2 and thus DR 4. Mail (DR 4/2) up to Fortify +4. This makes heavier, stronger armor better because it holds a stronger enchantment. You can't put any more Deflect on the item than it has DR, either (or more DB than it has DB, for shields and cloaks.)
Another option is to limit this for armor, but not shields - you can get a DB 6 light shield, if you really want to. This is more fair because shield breakage can end a lighter shield and break the enchantment, making that DB a double-edged sword, and because cost is always 100% (no piecemeal "discount" for Quick & Dirty Enchantment cost figuring.)
One Level Per Modifier - For every armor modifier on a piece of armor, you can have one level of a given enchantment. So plain armor can't be enchanted at all. Fine armor (or Elven armor, or Thieves' armor, or whatever) can get up to Fortify +1, Deflect +1, and/or Lighten -25%. But Fine, Elven, Thieves' Mail can get up to +3 (or Lighten -50%). Modifiers with multiple levels count once per level - so Ornate +3 counts as 3 levels worth for enchantment. So the Fine, Ornate +3, Giant Spider Silk cloth shirt the king wears at court can be enchanted to Deflect +5 and Fortify +5.
One modification to this is "one level, +1 per modifier." That way even plain armor can get a single level of enchantments but can't hold anything better.
Limited By Specific Modifier - pick one modifier (Fine from DF, Expert Tailoring from Low-Tech, whatever), and that modifier is necessary to have an enchantment higher than +1 (or higher than Lighten 25%). Or pick more than one - maybe only Fine, Dwarven, Elven, or Orichalcum can support higher levels. Maybe all of them can support up to +3, but only Orichalcum can support +4 or +5. You can do it by enchantment, too - perhaps anything can be Lighten -25%, but only Fine and Orichalcum can be Lighten -50%, but neither can get Fortify +5, which is limited to Dwarven plate.
(Thanks to Cole Jenkins for mentioning this yesterday - I forgot about pinning it to one modifier.)
Cost Based - X dollars in armor can only support Y dollars in enchantments (your choice - either total, or per spell). This makes more costly armor better at holding an enchantment. Simply set a ratio - $1 in armor can hold $5 in enchantment lets you put Fortify +1 on cloth armor, but not Fortify +5. $1 for $1 means only the most costly, ornate, and well-made armor in the world can support Fortify +4 or +5 (unless you use piecemeal costs, which can bring it down for some pieces.)
Any other enchantment limitations people have used out there? I'd love to hear them.
In my own games, I have always done the DR based one, with shields having no limit on enchantments - although it's really tempting to say per modifier/modifier level. Nothing in my game has more levels of Fortify or Lighten* than they have modifiers, and the non-magical modifiers have seen a lot of use. So allowing a single level plus one per extra adjective on the armor might be something I would implement. It makes Ornate so very attractive - not a lot of extra expense, but allows a lot of extra enchantment . . .
* it is worth noting that I don't allow Deflect on armor in my DF game; I allow it on shields as usual. Basically this is because adding a different DB bonus depending on hit location adds another step to every defense roll and I'd rather avoid this. I got zero pushback on this by my players for the same reason.