President Kennedy presented America as Germany's protector, and everybody wanted him. President Reagan also presented America as Germany's protector, but Germans thought he was making matters worse by stationing cruise missiles on German soil. This is ironic, because history has shown that Reagan did far more to assist German reunification than Kennedy ever did. President Obama has nothing to offer Germany, so his awkward, over-long speech seemed to be directed more at the American media than his German hosts.
Transcripts of the three speeches can be found online, but I've gathered them together for comparison.
President Kennedy's speech in Berlin, June 1963
President Reagan's speech in Berlin, June 1987
President Obama's speech in Berlin, June 2013
It's interesting that although Reagan carefully avoided Kennedy's "Ich bin ein Berliner" blunder, Obama blatantly repeated it. Maybe Obama believes the apologists who have claimed that it wasn't a mistake after all. These claims stem from patriotic Americans who have poor knowledge of the German language. President Kennedy really did say "I am a jelly doughnut", and Wikipedia is wrong to claim otherwise. Wikipedia has even posted a warning on its talk page not to write anything about this subject. "While the urban legend is well-known in the English-speaking world, in Germany it is not". This is incorrect. When I lived in Germany Kennedy's words were often cited as a point of ridicule.