Last Layer Solution
I am rewriting this last layer solution because one of my friends complained that the original one was somewhat hard to follow. I agree too, since the original version was sort of hurried, and the exposition wasn¡¯t clear enough.
Right now, I think it is better for me to clarify some concepts, namely
1) Orientation
2) Permutation
Orientation simply means that a piece is in its correct position, but is twisted wrongly, like in the following diagram:
Note that the two unsolved pieces are correctly positioned, but wrongly oriented. It is important to get this concept of orientation straight before proceeding.
Permutation is simple. It simply means that the piece is in the wrong position (we do not care about the orientation here), and we move them to their correct positions (permute them) by execution of some algorithm.
There are 4 algorithms that you would need to solve the last layer:
1) EDGES positioning algorithm
2)
CORNERS positioning algorithm
3) EDGES orientation algorithm
4) CORNERS orientation algorithm
The following table gives the necessary algorithms and some description/clarification:
Final
layer algorithms 

Situation
(Top view) 
Algorithm 

M U M U M U2 M' U M' U M' U2 The diagram on the left
shows the top layer, when viewed from above. When you are executing the
algorithm, only the edges of the top layer will be affected. The edges
affected are depicted by the diagram. You may need to repeat this
algorithm multiple times to completely orient the edges. 

L D' L' F' D' F U F' D F L D L' U' This is the corner orientation
algorithm. You may need to repeat this algorithm multiple times (and at
different angles) in order to rectify the corners orientations. 

F' L F' R2 F L' F' R2 F2 This is a corners
permutation algorithm. It cycles the corners as shown in the diagram. No
other pieces are affected. 

R2 U' F B' R2 F' B U' R2 This is an edge
permutation algorithm. It cycles the edges of the top layer as shown in the
diagram. No other pieces are affected. 
My advice would be to solve the pieces into their correct positions, before orienting them. Orientation can be hard to discern when the pieces are incorrectly positioned.
Congratulations!
Your puzzle should be solved now (provided you did not mess up something.)
Some
last words:
This method is good enough to average at around 60 seconds. I took a random average of 3 solves and got an average of 58 seconds.