I'm still really new to all this mapping stuff, so you'll have to bear with my lack of experience. I have read through the trigger system quite a bit, however, so here's my 2 cents on the subject.
The method you should use really depends on the type of map you're making. If the map generally only has one unit/hero per player, then the best way (in my opinion) is to just make a passive skill, and create a trigger that does the following:
Event: A hero learns a skill
Condition: Skill learned = (YourSkillHere)
Action: Set the player's tech level to the level of the new skill level for (owning player of (triggering unit)) (There's a few ways to do this)
Setting the tech level can be done by using the arithmetic function which adds +1 to the previous tech level, or you can have a variable that the trigger increases and sets the tech level to when the hero learns the next level of the skill. Also, make sure, in the object editor, under 'Tech Tree - Upgrades Used' to add the range upgrade you've created for that unit.
If a player can have multiple units/heroes with an increasing range, then you just need to create a separate skill, upgrade and trigger for each. Just do exactly what I previously said to do, but for each hero that any one player may have.
Now, if you're looking to create an active skill that can be cast upon a target and increase that target's range, things get a little more complicated. Now, to my knowledge, this is very limited. (without Jass, at least, don't know if it's more workable with Jass or not) The only method I can think of, at the moment, to do this, is to create the upgrade/skill, as previously noted, and create a trigger that increases the tech level of the owner of the triggering unit, when that unit has the buff given by the ability.
The downside to this is that every unit controlled by that player that can use the upgrade will get the increased range, so you'd have to work around that. Either make the spell a global effect for a given player or make it only target a type of unit that any given player can only have one of, and only give that unit type access to the upgrade.
Using the unit classifications and proper conditions in the trigger, you can work around this limitation to a certain extent, but that'd be really complicated, and I suck at explaining really complicated things in text. I could be of more assistance in this matter if you were more specific on the details of the map you're wanting to put this skill into. (Type of map, type of skill, type of targets, stuff like that)
EDIT: Oh, and just so you know, you can lower the tech level with triggers as well. Since the only way (I know of) to lower a hero's skill level is through triggers, just make sure any triggers that lower the skill also lower the tech level. If you ever flat out remove the ability from any unit, then simply make a trigger with a boolean comparison that checks if the unit has the ability, and if it's false, then set that player's tech level to 0.