This speech comes very late in the play, as Hamlet returns unexpectedly from England to Denmark and explains to Horatio all that's happened. Hamlet says that he intercepted the letter telling the king of England to kill him and rewrote it so that Rosencrantz and Guildenstern would be executed instead. He feels that God was on his side in this, providentially leading him to Claudius's death-dealing letter. God was also with him because he, Hamlet, had his father's signet ring on hand to officially seal the letter condemning the courtiers.
Hamlet outlines to Horatio his current reasons for killing Claudius. They include Claudius having murdered his father, "whored my mother," having "popped" up to deprive Hamlet of the throne that should rightfully have been his and having tried to have Hamlet executed in England. Hamlet says it would be damning to let this "canker" do more damage.
Hamlet has understood before that Claudius killed his father and, to his mind, sullied his mother, but his concern that Claudius has denied him the throne as well as his wanting to repay him for trying to have him murdered provide new rationales for revenge. Another big difference between now and earlier is that Hamlet has become calm and rational. There's no longer any question in his mind about what he needs to do.
Good question! Earlier, Hamlet's motives in killing Hamlet seem to be those of a son: he seems to want revenge for the loss of his father. In this speech, his motives seem those of a politically ambitious prince. He seems to want to kill Claudius because Claudius disrupted his own path to the throne.