This is, of course, a matter of opinion. I would argue that a civil war was the only way to end slavery quickly by the middle of the 19th century.
It seems entirely possible that slavery would have eventually been done away with by peaceful means. We know that Brazil abolished slavery in the 1880s without having to go through a civil war even though slavery was a very important part of their economy. There are a number of reasons slavery might have ended in the US.
First, there are economic reasons. Slavery flourished before mechanization. As agriculture became more mechanized, mechanized farms would have outcompeted slave plantations. This would have made slavery much less economically viable.
Second, there are moral/political reasons. If the US had remained the only country with a slave system (after Brazil abolished theirs) a great deal of pressure would eventually have been brought to bear on it. Other countries might eventually have gone so far as to refuse to trade with the US if slavery still existed.
For economic reasons or for political reasons, slavery would have ended at some point. However, it would have taken a long time for this to happen. A war was the only way that slavery could have been ended in a timely fashion.