I think engines only help for tactical improvements, not strategical. I saw a lot of moments where engine suggestions was far from perfect, strategically.
Also, in endgames, you can't depend on engines even tactically.
I used to use Fritz GUI with strongest engine(for that day) for blunder checks and tactical misses, in Fritz GUI you can do it easily with one click, give the game, leave the computer for 30 mins and when you return you get an tactically annotated game. With this, you can improve your tactics ability.
But remember, use engine suggestions only for finding answers for tactics, if you can't understand why the answer is correct, then you can't benefit of using engine.
For strategy, best way is to find someone who is at least 300 elo higher than you, and analyze games together. Also read every strategy classic, if you didn't read yet.
And for endgames, you need to be a real geek in reading endgame books. Best way is to read quality endgame books, and try to solve endgame studies.
Studying endgame is really beneficial for elo improvement, because people under 2000 elo don't care much about endgame. If you get a good endgame knowledge, then you can go for exchanges happily and solve your problems in endgame. Also, it's said that a good endgame knowledge requires an excellent grasp of pieces and their abilities, which also naturally boost your tactical ability.
My favorite endgame book: http://www.amazon.com/Secrets-Pawn-Endings-Karsten-Muller/dp/1904600883 which is an excellent and complete source for pawns.
Lastly, about openings, don't memorize, but understand. Don't memorize and use popular strong lines just because they are popular and strong, if you don't understand the harmony in the moves, then the opening won't be strong in your hands.
When you use an opening which you understand the strategy within, deeply, you almost always arrive a better middlegame/endgame comparing your opponent, which makes you win the game.
I won a lot of matches against strong players with openings which are quite unpopular, but I understand very well. And I saw these strong players fail to find correct continuations :)
To give an example, I used to play Dutch Defense with blacks successfully, later I wanted to play it with whites, which found silly by others from time to time. But because I knew Dutch very well, it went good with whites too, and I got quite good results.
A bit long but, these are my advices. Hope it helps.