After a few questions about this, and thinking about it for a little while, I wrote up this quick tutorial on ideas to try to keep your hero's balanced.
Heres a good idea I use when trying to make my own balanced hero stats. I set out a list of rules that I use when making all the stats for my heroes.
All stats start at an initial value (For example, 14.) From there, each stat can be assigned points, with a limit on the amount of points (for example, 9). So, you could come out with Str: 16, Agi: 18, Int: 17.
For levelling up, you can set a number of points that can be distributed among them, just like the previous ones (ie; 4 points, 1.2 str per level, 2.4 agi per level and 0.4 int per level).
HP and Mana:
Set a default value, with which you have a certain amount of points (again ;) ) with which to work. You can minus stats from this initial amount, to get more to spend. For example, 100 base, and 50 points, means you can get say, 160hp and 90 mana.
Damage and Defense:
Base damage could be based on the hero's BASE primary stat, ie; If the hero has 22 str, and is a str hero, the initial damage would be 22. Or, if you want it to be more varied (int hero's deal less than agi hero's who in turn deal less than str hero's), you could use a percentage of their primary stat. Ie; Str hero's deal 100% damage, Agi deals 75% of their primary stat as damage, and Int deals 50% of their primary stat as damage.
Since defense is somewhat related to the toughness of the hero, and the toughness is governed by the players strength, you could use something related to the hero's strength value, to determine base armor. For example, Str/5.
Most other stats can be tweaked to your own liking, without causing too much imbalance. Just make sure you dont overset or underset your regeneration rates.
Movement speed is related to how agile a dextrous(Sp?) a hero is, you could relate it to the hero's agility speed. For example, have a default speed (say, 250) and then add onto that, the agility of the character. If you want a large variation on movement speeds, try using a lower base value, and using a multiple of the agility stat. For example, 200 base, and uses 2x or 3x the base agility.
Rules of Balancing:
TEST. I cannot stress this enough. The only way to test a hero, is to test it thoroughly. Sometimes this is the only way to balance skills etc of a hero, as on paper they may look roughly the same, but in gameplay come out with a huge difference.