There was a witness named Stillington, that declared Edward had been wed before and Parliament asked Richard to take the crown. There was a document drawn that declared the boys illegitimate. I do not believe Richard killed the boys because of that document.
If the boys were left to live, Richard would have faced legitimacy disputes from both the Yorks and the Lancasters. Of course, history is unclear about who was behind the disappearance of the princes, but I think the evidence points to Richard.
In Henry's case, I find it interesting that while I think his claim to the throne was valid, he didn't want to fight that quagmire. He claimed the throne by Right of Conquest.
His marriage to Elizabeth sewed things up nicely, so the Yorkists could claim a win, too. Since her brothers were gone and Richard left no heirs himself, she was pretty clearly next in line for the throne on their end (claims of illegitimacy aside).
Making the princes bastards was never going to be a permanent solution for Richard. Richard was unpopular and those boys would have been the focus of rebellion when they matured. Parliament had made them illigitimate and Parliament could reverse the decree with a vote, as indeed they did after Henry took the crown. Richard would never have been safe on the throne and his offspring would have had to face constant challenges as long as hi brother's sons lived. Henry Tudor was of the Beaufort line which had been blocked from the succession for generations, so Richard thought killing the boys eliminated the only legitimate challengers to his rule. He did it.