From the Oxford English Dictionary:
Usage
The term American Indian has been steadily replaced in the US, especially in official contexts, by Native American, which became prominent in the 1970s. The latter is preferred by some as being a more accurate and respectful description (the word Indian recalling Columbus' assumption that, on reaching America, he had reached the east coast of India), as well as avoiding the stereotype of cowboys and Indians in the stories of the Wild West. However, American Indian is still widespread in general use even in the US, partly because it is not normally regarded as offensive by American Indians themselves. Nevertheless, since the category American Indian is very broad, it is preferable where possible to name the specific people, such as Apache, Comanche, or Sioux.