Madison warned the American people in Federalist #10 about the rise of factions in a democracy. He did say, however, that they were an inevitable effect of liberty. The U.S. Of factions in politics causes corruption and ignorance to other opinions that may be just as appropriate, if not better. My suggestion as to get rid of them would be to ban the use of political party identity/advertisement in political campaigns/terms. However, seeing as how this would probably be seen as a First Amendment violation, I suggest, as an alternative, that the government pass legislation forcing minor parties to be included in debates. Giving the people two opinions to pick from out of so many seems rather "undemocratic" in my opinion.
First I must admit, that as a german citizen I am no expert on U.S. Politics. But what I can say is that the problem doesn't lie in the existence of political parties. Parties form inevitably when several people have the same interests. What needs to be done is to allow more parties in the the parliament.
Let me take the German system as an example for a multiparty system. Here you have to have a few thousand supporters for your party in one federal state for your party to be on the ballot in this state. So if you want to be eligible in each state, you have to be supported in each state.
Then, the number of seats you get in the parliament obviously depends on the number of votes you get. If you get 30% of all votes, you get 30% of the seats in the parliament. But if you get less than 5% of the votes your party doesn't get into the parliament. This is to prevent a lot of small parties just blocking the government, like it was in the Weimar Republic, before World War 2. Also, in each district you vote for a direct candidate of your choice, which usually, but not necessarily belongs to a party. And the candidate with the most votes in a district also goes into parliament, even if his party wasn't elected. And then, depending on the outcome, some of the parties form a coalition to get more then 50% of all seats. This system applies for the election of the national parliament, the parliaments of the single states and the parliaments of single cities and communities. I know this it isn't perfect, but so far it works rather well and represents quite well what the people voted for. And it is not just right vs. Left or conservative vs. Liberal.
The problem is the two-party system, in which the winner takes all and the loser gets nothing at all. This makes niche parties unviable and forces people into having to either vote for one of the two major parties or throw their vote away on a third-party that has no chance of victory.
What we need is to reform the way seats are allocated in Congress. For instance, by switching to proportional representation such that if a given party gets 10% of the vote then 10% of the seats in Congress are allocated to members of that party. This would make alternative/niche parties viable, and remove the current disincentive against voting for them. And also consequently result in a Congress whose makeup more closely reflects its electorate.
So anyways, parties aren't the problem in and of themselves, but there is a legitimate problem and electoral reform is absolutely called for.
The main problem with the two-party system in place in the US is the lack of true representation of opinions. Each party is forced to cover a broad spread of opinions and causes, weakening the party identity and discouraging it from focussing on any particular topic or cause. Everyone is forced either to vote for the liberals or the conservatives, Democrat or Republican.
Multi-party parliamentary systems allow for a host of smaller parties, each with a narrow focus and specifically energized voter base. Coalitions are made to achieve specific goals, but party identity remains more or less intact. This would remove a lot of the black/white polarized politics, and one could vote for any of a number of specific parties that would align much closer to your actual beliefs.