While surfing some engine forums recently I compiled a list of attributes for various engines. Here is a brief summary of other people’s opinions of the strengths and weaknesses of some of the more popular engines.
Stockfish: Could use more endgame knowledge.
Komodo: Reasonably solid in all phases of the game. Usually does not favor sacrificial lines but one commentator observed that when going through Spielmann's, "Art of Sacrifice in Chess" he was surprised how many times Komodo (version 4) liked the sacrifice more than other engines.
Houdini: poor understanding of initiative, strong in endgame. Very solid tactically. Sometimes has difficulty making up its ‘mind’ when things are complicated. Often comes up with the best defense. When Peter Svidler was asked which one player he would choose to represent Earth in a hypothetical match against aliens, he answered "Houdini". Note: I have Houdini 2 and have noticed that it seems to be slow in finding flaws in its initial evaluations, so it seems to need longer thinking times. I usually check its recommendations with either Stockfish 3 or Critter.
Shredder: Understands the initiative, especially in early opening, good understanding of endgame but other engines are much faster in their calculations so sometimes score over Shredder.
Fritz: Not very flexible compared to other engines. Sometimes heads for positions that other engines rightfully avoid.
Critter: Tactically strong, excellent opening play, sees reasonable alternatives. Not very good when it comes to hypermodern strategy but otherwise good at middlegame planning; reasonably good in the endgame.
Rybka: Poor in opening phases…no comprehension of early pawn structures or tempo. Slow…needs more time than other engines. Decent endgame play but not as good as Houdini in the endgame. The biggest advantage to Rybka (especially Rybka 4) is that it has very good positional understanding. It is capable of giving a fairly accurate assessment of the initiative and king safety but generally speaking, Rybka is slightly slower tactically than Houdini or Stockfish.
Junior: Sometimes too aggressive. Sometimes sacrifices unsoundly. Not too useful for analysis. Too aggressive in pruning in long games but it often show the most troublesome line for an opponent in OTB play.
Naum: Only engine to have a grasp of fortress positions.
Spike: Does not gain much strength with extra time.
Thinker: Does not show its thinking lines making it absolutely useless for analysis Single thread.
Zappa has a very solid style and sometimes when other engines are showing a win or loss Zappa will find a draw. But… it takes time and Zappa generally plays poor moves at shallow depth, and is very poor without some human help.
Vitruvius: Not very aggressive or sacrificial and it plays fairly conservatively.