Waving Israeli and British flags and carrying placards reading "End Hamas terror! Peace for the people of Israel and Gaza", demonstrators prayed for peace as speakers demanded Hamas stop firing rockets at Israeli civilians.
Police estimated the crowd at 4,000, but organizers claimed there was a surprisingly large turnout of 20,000 people.
Henry Grunwald, president of the Board of Deputies of British Jews, the Israeli ambassador Ron Prosor, Chief Rabbi Jonathan Sacks and lawmakers addressed the demonstrators, who chanted: "Yes to peace".
"We are here because we want want peace and we want life, not only for the people of Israel but also for the people of Gaza," Grunwald told the crowd. "No-one can fail to have been moved by the pictures coming out of Gaza. As human beings we all grieve for the innocent victims of this conflict."
"We are gathered today not in triumph but in tears. All it took to avoid this suffering was for Hamas to stop firing rockets on Israeli citizens," said Sacks.
"We say to those who criticize Israel: you want Palestinian children to grow up with hope; so do we," Sacks said. "We care for life. This is why we say to Hamas: stop killing the Palestinian future."
"Let a voice go out today from here in Trafalgar Square... we want peace," he added, while the crowd sang a well-known Hebrew prayer for peace in Israel and for all the people on Earth.
The hour-long rally ended with the singing of the British and Israeli national anthems.
A group of counter-demonstrators lining the side of the square chanted throughout the rally, waving placards reading "We are all Hamas. Boycott Israel", "Israeli terrorist cowards" and "End the siege - talk to Hamas".
Meanwhile, leading British Jews called on Israel's government to end its military action in Gaza to achieve security. In a letter published in The Observer newspaper Sunday, 11 signatories called on Israel to end military action and attempt to negotiate a settlement.
AP contributed to this report