The key to this game, obviously, is heroes. Do everything you can to boost their strength, by going to the buildings that increase their four powers, and so on.
Never lose a developed hero. If you are in a fight that you are obviously going to lose, try surrendering. If you don't have enough money, then wait until the last time you think you can survive before you retreat. It is much better to keep a strong hero that fighting to the death, losing your artifacts to the enemy, and having to recruit a level 1 hero to make up for the loss.
Always upgrade your troops once you are able to afford them. Stronger soldiers do more damage, and die less, than weaker ones, which saves you the money of upgrading them in the end.
Always collect from neutral creature huts as much as you possibly can. These are free soldiers that can supplement you existing troops, and if nothing else can draw enemies away from your "real troops."
Always try to have at least one flyer and one shooter in every army. This is doubly true if you have a very strong stack of soldiers you want protected. The games A.I. virtually always goes for shooters first, and then for flyers. So, if you have a Knight with a large amount of Paladins, then try to include archers as well. These archers are not necessarily for doing damage, although they can help, but to draw the enemy away for your Paladins who will do the primary job or killing your opponents.
When in combat, always fight to minimize your casualties. Do this by applying your spells and and troops where they will have the most effect. You must do this by analyzing the troops you are fighting. If they are all slow units, like hydras, and you have shooters and spellcasters, then don't even attack with any flyers or ground units. Just wear them out one at a time with your spells and shooters before you commit your ground troops, because spells and shots have no casualty danger from counter-attacks.
Whenever attacking enemy stacks, go for the enemy with the largest damage capability first, and then try to eliminate that stack before going on to other stacks. Also, try to concentrate most of your forces on that stack, and then as a group go to the next stack.
When attacking shooters, try to eliminate their capability to shoot as soon as possible. This means flying/moving units inbetween two stacks and eliminating stacks that can still shoot with spells. This both reduces damage to weak units of your own that can be shot at, but also decreases by half the shooter's stack damage capability.
Resources in HOMM II are often scattered and you might not have the necessary resources for that one building, but you have a surplus in another. This can be easily fixed by trading at marketplaces. To reduce the cost, build a marketplace in every single city you have. This will let you trade goods at very good rates to build whatever buildings, or units, you need to.
Try to have at least one mine/resouce center at all times of every single type of resource. This positive flow will make sure that you can eventually build every building, and every unit.
Late in the game, resources have significantly less value, while gold's value skyrockets as all those upgraded units need recruiting. So, while keeping the odd resource for units, like sulfur for warlocks, resources can be largely sold away for gold.