People who earn more money can afford to give more money than those who are only earning enough to survive. If someone earns $20,000/year and you ask them to give 40% of that to taxes ($8,000) they will only have $12,000/year to live off of. If somebody earns $100,000/year and has to pay 40% ($40,000) they still have $60,000 to live off of. In this example the first person should be taxed less and the second could be taxed more while allowing both of them to maintain a lifestyle fit to their income level. Everybody who works deserves the opportunity to live above the poverty line and the government has no business taking this away from it's citizens.
There are competing organizations that support progressive and flat taxes. The Heritage Foundation supports a flat tax while the U.S. income tax system is based on a progressive tax. Flat taxes have yet to be tried in terms of the United States where everyone pays the same rate. Progressive taxes are implemented now--the rich pay a higher rate because they have the ability to pay more taxes than the poor.
Of course there's public support for both as people will naturally have opinions on anything. I personally fall on the side of a (very low) flat tax. The Liberal Democrats in Australia are proposing a 20% flat tax on every dollar above $40 000, which I think is around the right amount.
A flat tax would make the taxation system more fair and predictable. Also, a flat tax would eliminate the need for many of the deductions and penalties which are so destructive to the current tax code. A progressive tax from a moral standpoint makes things more fair and equitable in the minds of many.
With a flat tax the wealthy still pay more they just do so in direct proportion to how much more they earn. If someone makes 1 mill and pay 20% they pay $200k. If someone makes 50k they pay $10k. They make 20 times less and pay 20 x less. Simple & fair