This war had as much a single cause as any war in human history. It was argued as such by all sides at the time.
Here is a website which preserves the speeches of the secession commissioners - that is, men who were sent by pro-secession Southern Governors to persuade Southern states to vote for secession and join the Confederacy, during the initial crisis before Sumter.
Their arguments were meant to persuade states to secede. By far the overwhelming reason used to persuade undecided Southerners was the necessity of secession to preserve slavery.
http://civilwarcauses.org/commish.htm
These are largely taken from a very good book by Charles Dew called Apostles of Disunion.
http://www.amazon.com/dp/081392104X/?tag=absowrit-20
For more good discussion, here is a lecture by Prof. David Blight of Yale University on causes of the Civil War.
http://oyc.yale.edu/history/hist-119/lecture-11
"Slavery was the cause of the war" is a pretty simple statement. That statement is misleading, in my opinion, because it gives the impression that Northerners in general were on a crusade to abolish slavery. It gives the impression that the Lincoln Administration was about to make some sort of direct strike against slavery, and the southern states seceded to avoid that strike. It gives the impression that one of the main war goals of the Union, from the very beginning, was to end slavery forever.
None of those impressions are correct. As a presidential candidate, Lincoln had made it crystal-clear that he had no intention of disturbing slavery in the states where it was already established. (And I am unaware of any evidence that he was being anything less than honest.) It was for precisely that reason that the more radical abolitionists, such as William Lloyd Garrison, didn't feel much enthusiasm for him. I'm not sure how you can say "slavery was the cause of the war" when there was a dominant consensus, both North and South, that slavery should be allowed to continue in those places where it already existed.
When fighting began, the Lincoln Administration and Northern opinion in general were quite clear-cut that the goal of the war was not to abolish slavery, but to preserve the Union. After two years, when the Administration finally did tilt towards emancipation, part of its motivation was a desire to use emancipation as a hammer against the secessionists. I'm sure a moral repugnance against slavery was also part of the motivation, but that repugnance had never before been strong enough to lead the Administration to call for immediate and outright abolition.
So if you ask what the proximate cause of the war was, I think the best answer is--secession. Asking what caused secession is not quite the same as asking what caused the war.
And I think it's pretty well accepted among historians that the proximate cause of secession was a conflict over whether to allow slavery in Western territories. That's not exactly inconsistent with saying "slavery was the cause"; but I think the more precise statement is far better.
It is arguable that the ultimate cause of secession was a fear on the part of Southerners (perhaps well-founded, perhaps not) that in spite of Lincoln's promises, the North would eventually seek to undermine slavery in the states where it was already established. Even if that's the case, saying "slavery was the cause" still seems too simple to me. Slavery had been established for many decades--why did it wait so long to cause secession? There must have been other causes that made the issue come to the fore right then.
More generally, I think it's a mistake to ever look for a single cause for any war. There are always underlying causes, mediate causes, proximate causes--causes come in whole chains and networks.
I don't think I'm disagreeing too much with professional historians here. If you find any point where I'm contradicting what Blight or any other historian has said, I'll be willing to listen.