FREE - In Google Play
FREE - in Win Phone Store
This post could also be titled "What is the best way to analyze your games?"
As for me, nothing very sophisticated yet. I go through the game with an engine running and for every position I look first at the move from the game and then compare it with the engine suggestion. Then I annotate what I think are tactical or strategical mistakes and insert the relevant variations.
First, try to write down as accurately as possible your thoughts during the game. The reasons why you played the moves you did, and rejected the others -- as detailed as possible, variations etc.
Then the analysis starts. The goal of the analysis is to find out what parts of your reasoning were correct, and which were wrong.
I think it's best to start without computer, but not everybody agrees. Anyway, play out the variations you saw, see if they made sense -- do you see anything you failed to see during the game? Was the decision you made correct? Write everything down.
At the end, go through it all with the engine, to point out further things you missed, and check your assessments.
If you're lucky, you can find out not just what went wrong, but why you did it wrong. Then you can try not to make that sort of mistake next time.