Just as Trump would want it, this announcement has become entirely about Trump, and not about Israel or Palestine. Unfortunately, that means discussion of the actual issue gets lost in a torrent of pundits trying to divine Trump's motivations.
Jerusalem is Israel's capital, and always has been. The Israeli government conducts its business in Jerusalem, and has done so since the state was founded. When Israel declared that Jerusalem was its capital, it only controlled territory within the 1949 Armistice Lines (this territory includes the western portion of Jerusalem). These lines mark the boundaries at which the armies stopped fighting after Israel's war for independence, and they served as
de Facto borders until 1967. Most countries recognize Israel's sovereignty within the 1949 armistice lines (with the exception of a few Muslim countries who don't recognize Israel at all), and so in theory the notion that Jerusalem is Israel's capital should be uncontroversial. The capital is, after all, located in territory that the international community agrees is legitimately under Israeli control.
The controversy arises from multiple conflicting definitions of Jerusalem. During the Six Day War in 1967, Israel captured the West Bank from Jordan. Shortly thereafter, Israel passed a law annexing the eastern part of Jerusalem, which includes the Temple Mount and al-Aqsa Mosque (the first and third holiest places in Judaism and Islam, respectively). This annexation was not recognized by the international community, which insisted that final borders should be determined by bilateral negotiation, rather than any unilateral move.
Since then, other countries have been reluctant to recognize Jerusalem as Israel's capital, viewing such recognition as an endorsement of Israel's claim of sovereignty over East Jerusalem. I think this confuses different issues, however. Israel established its capital in a portion of Jerusalem that most countries recognize Israel rightfully controls. They can acknowledge that Israel's capital is in Jerusalem, while still insisting that Jerusalem's final borders be decided by bilateral negotiation with Palestine. That, after all, would be Israel's stance. In every Israeli peace offer since Oslo, Israel has ceded Arab neighborhoods of East Jerusalem to Palestine:
Trump's announcement doesn't seem to take a stance on the status of East Jerusalem. He did not declare, as right-wing Israeli politicians occasionally do, that Jerusalem will forever be Israel's "undivided" capital. Instead, he acknowledged that final borders would result from bilateral negotiations.
Of course, I'm not a diplomat, so none of this should be read as a judgment of the political wisdom of Trump's announcement. I don't know that it helps Israel, or anyone else. But I think it's not only reasonable to recognize that Jerusalem is Israel's capital, but hard to argue that it isn't.
Recognition of Jerusalem as Israel's capital, however, is just symbolic by itself. Moving the embassy to Jerusalem has more practical implications. It could cost
over a billion dollars, and be difficult to secure against terrorist attack. It might have been a good idea to hold off on moving the embassy to Jerusalem for practical reasons, even if it's politically justified.