The Persian army wasn't composed of monsters, to start. In the movie, many of the enemy soldiers are deliberately made to be monstrous and non-human.
Additionally, the movie pays only lip service to the thousands of non-Spartan soldiers who fought (and died) there.
The battle scenes are complete fabrications - the Spartans pay lip service to their proper formation, but abandon it for individual heroics at the earliest opportunity.
Essentially, it would be easier to ask what is correct about the movie than to list the differences.
I've found an interesting PDF which discusses the differences (link is to actual PDF). There are important differences in Spartan motivation, the reason such a small force was sent, Persian army size, chronology (especially the well incident), and equipment.
Cracked says the movie was saved by its inaccuracies.
This page takes my advice (in advance) and lists the accuracies instead.
Summary of the PDF: Athens caused the war by supporting a rebellion against Persia. Sparta HAD thrown a diplomat down a well, but it was a decade before the war. The Persian army was at most 200,000 men strong. The Spartans only took the front line the first day, each following day that spot was taken by another group of soldiers. 700 men from other cities stood beside the 300 to fight a delaying battle so the majority of the force could escape the betrayal. The tactics employed in the movie are entirely inaccurate, and the spartans wore a LOT more armor, as well as far more frequently wore helmets, all of which were plumed.
The Cracked article points out that the discrepencies were made intentionally, to create a more engaging film. Any person in a full Spartan outfit was essentially identical to every other Spartan, which would have made character identification harder.
The final article gave a simple list of bullets that were correct, quoted here:
7,000 Greeks were led by King Leonidas to fight against the Persian
Empire's 100,000 to 2,000,000 in the
narrow pass of Thermopylae (Greek
Before the battle began, there were approximately 200 Persian ships
destroyed by a violent storm.
The Spartans yelled "come and take them" when the Persians ordered
them to throw down their weapons.
The battle lasted for three days with the Greeks stopping several waves
The goat path behind the Spartans was betrayed by a Greek
traitor named Ephialtes.
At this point, all troops fled or surrendered except for the 300.
A Spartan did say, "Then we will fight in the shade" in response to
someone saying that the Persians
arrows will hide the sky.
The Spartans fought until the last man was slain in a sea of arrows.
4,500 Greeks died including the 300 and 20,000 of the Persian Empire
died (Greek estimates).