There were nearly a half-dozen good reasons for the war, and in order of consideration:
1. Economic differences
These issues were hot-button back in the day. The North was progressing economically while the South was entrenched in slavery and cotton. It was expensive to switch crops.
2. State vs. Federal rights
Many states wanted to retain the rights to reject federal acts (such as anti-slavery laws) and to maintain a weak central government. Others wanted a stronger central government to turn to for leadership in overall growth and to settle disputes between states. When 'nullification' was rejected as part of the Constitution, many states began to consider secession.
3. Slavery in the territories
Between the Wilmont Provisio and 'Bleeding Kansas' territories eventually were given the right to decide whether they would be anti-slavery or pro-slavery. This dispute would eventually lead to secession.
4. Growth of the Abolitionist movement
The issue was becoming polarized due to several things, such as Uncle Tom's Cabin, and Dred Scott. More northerners were against slavery, and they were putting pressure on Washington to change things.
5. The election of Abe
Before he was even president, the South seceded because they thought he was anti-slavery (Lincoln was, but he would have tried to reach a compromise to prevent the breakup of the Union). This directly led to the war.
So in the end, the Civil War was about the economics of slavery, and the morality of owning slaves, and the legality of subjugating any living thing. But it all started because of money.