As to which engines to use... It depends.
Personally, I have no doubt that the latest version of Rybka is the best engine out there. Better positional evaluation, better selection (looking deeper at lines that seem more important), and an excellent search.
I'd recommend it as a first engine.
However, although Rybka is stronger than other engines in most positions (actually in the vast majority of positions), there are many positions in which it is worse than others.
There are a few middlegame positions where Hiarcs 11 (I suppose 12 too, although it is too new for me to have formed an opinion on it yet) handles and evaluates better than Rybka, for example. However, Hiarcs is much worse than Rybka in overall playing and analysis strength.
On the rating lists, Hiarcs 11 is rated ~150 elo points weaker than Rybka.
If you want a single engine, I'd suggest Rybka. If you can afford 2, I'd suggest Rybka and Hiarcs. If you want to know which engines are better at certain kinds of endgames..... That's a whole other topic, and I don't think you'd want to use ~7 different engines:)
Naum 3, Zappa and Shredder 11 are also excellent commercial engines.
Zappa is only very good if you have many processors. at least a quad core. It scales VERY well. Otherwise it is just worse than other engines.
I wouldn't look at other commercial engines of those that are currently available Junior and Fritz, while very good, are not as good as the ones mentioned above.
This may change with future versions. But, The best, by far, is the latest version of Rybka 2.3.2a. Hiarcs 11/12 simply complements it on a few positions where it does not do too well and it does, so Rybka would be my recommendation
Of the freeware engines, Toga is spectacular. and in pure strength, it is about equivalent to Hiarcs 11. Those things change with versions... But it is free, so you can easily download and test it.
First of all, If your goal is to improve, then always FIRST analyze yourself, and only then use the engine/s to support/refute your analysis. Also, you need to ask the engine the right questions in order for it to be most effective - Suggest specific lines, look at the end of them, look at the positions the engine sees at the end of the lines it is analyzing, check in depth to understand why the engine prefers some line over the others and try to see where the position goes...
Second, both Rybka 2.3.2a and Hiarcs 11see that Bxg2 is great after just a few seconds.
For example, I was wondering why Rybka gave such a high score to Qd7.
You want to know what the reason is?
Other than the cute little threat of ...Qh3 (if Bxf6 STILL Qh3), and white can't bring more defenders to the kingside (Qd7 Ne3 Rxe3!), Rybka sees that Qd7 f3 is suicidal after Bg3, and if white takes on h2, then what does black play? of course... Bxg2 again:) It's essentially the same idea, proposed in two different implementations.
For the same reason, Qc8 is also probably winning... The reason it is more complicated to win with it is a small tactical point: If black the queen leaves the d file, white can play Qd4 immediately, and join the defense. But white is still probably lost for white according to Rybka though (-1.9).
So there are probably few winning lines (Another example - Re2 may be a slower way to win. I would love it if I could not find the tactical shot immediately, and Rybka gives it as better than -1 (it gets closer to -2 as it goes deeper, but you don't need to wait for it to reach that far to form conclusions), and I think it should be winning too).
Modern engines are starting to see these things more and more.