I don't like skill trees.
What I tend to do is have base parameters and skills become available as these parameters reach certain levels.
Say you have four base parameters, Fire, Air, Earth, Water.
You break down your individual skills by base parameter, so something like.
Ignite, Burn, Fireball
Quench, Water jet, Drown
Cool, Blow, Hurricane
Dig, Throw, Earthquake
Then you mix them, Hurricane with Water Jet = Tsunami. Earthquake + Fireball = Lava flow
As long as you have enough base parameters, and enough "levels" in each base parameter, you can create as many skills as you want.