Although we typically think that the US was overwhelmingly in favor of Indian removal, this is not necessarily true. In fact, the vote in Congress was very close. The Senate passed the Indian Removal Act of 1830 by 28 to 19 while the House vote was much closer, with the act passing by 102 to 97.
The arguments for Indian removal rested on two main grounds. First, they argued that the white Americans (and their black slaves) needed the land and could make better use of it. They argued that Americans could make the land more economically productive than the Indians had been able to. Second, the proponents argued from the idea of white superiority. They argued that the Indians were inferior and that it was not necessary to treat them fairly.
The opponents of Indian removal disagreed with each of these at least in part. They did not deny that whites would make better use of the land than Indians. However, they felt the Indians should be taught “civilization.” They pointed to the Cherokee as proof that this was possible. The Cherokee had become largely sedentary and agrarian and had developed a written language and a constitution. Thus, they said, Indians should be civilized, not removed. Second, they argued that the US was morally required to live up to agreements it had signed. It could not morally tear up treaties that it had signed just because it was stronger than the people with whom it had made those treaties.