My guess would be Indian, but that sounds like a guy with a feather on his head who hunts buffalo.
Is there a better name?
The correct term (demonym) is Indian. In the United States, the term Asian Indian is also used in order to avoid confusion between Indians from the subcontinent and Native Americans (American Indians). These days, using Indian to describe a Native American may be considered improper and even offensive by some*. Thus, even in the US, Indian would often to be taken to mean someone from India. And if one wanted to completely avoid ambiguity, then from India would suffice.
*Some Native Americans do not mind being called Indians. (Thanks to @Robusto for pointing that out.)
In common speech, what I most often hear is, "He's an Indian -- I mean an India Indian, not an American Indian" or "He's an Indian -- I mean from India." i.e. the speaker almost always has to backtrack and add it as an afterthought, and when they do they usually say "India Indian" or "from India".
In writing, when the context is not clear, I'd generally say "a person from India" rather than "an Indian" to avoid confusion.
Side note: Note that using the term "American Indian" rather than "Native American" is offensive mostly to white people on behalf of Indians, rather than to the Indians themselves. The people in question more often refer to themselves as "American Indians". Not long ago I read of a survey taken in the mid-1990s that found that (best as I recall the numbers) about 50% of American Indians preferred the term "American Indian", 35% preferred "Native American", and I presume the rest had other terms, didn't care, whatever. There's only one such person that I ever knew at all personally and he called himself "an Indian". I just did a quick Yahoo search and couldn't find anything more recent, so I don't know if that's changed. Personally, I think there's a certain irony to all this: To show greater respect for Indians, white people tell the Indians that we know better than they what they should call themselves. Sounds a little patronizing to me. But I'm probably trending from language to social commentary here.
You can also use the term desi, which is commonly used among Indians and other South-central Asians to describe themselves. This term may also be of use to you if you know that the person you've only just met is from that part of Asia, but you're not quite sure from where. I've found, using it, that it's consistently well received -perhaps because of its endonymicity.
Desi [d̪eːsi] or Deshi [d̪e(ː)ʃi] refers to the peoples, cultures, and products of the Indian subcontinent and, increasingly, to the peoples, cultures, and products of their diaspora. Desi countries include India, Pakistan, Bangladesh, Nepal, Bhutan and Sri Lanka, and there are large desi populations in (e.g.) the UK, US and Canada.
Hindi: देसी, Urdu: دیسی, Punjabi: ਦੇਸੀ ,Marathi: देशी, Gujarati: દેશી, Bengali: দেশী, Tamil: தேசி, Telugu: దేశీయుడు, Malayalam: ദേശി, Nepali: देसी,देशी
This ethnonym belongs in the endonymic category (i.e. it is a self-appellation). Desi originated from the Sanskrit word देश deśa- ("region, province, country"). Its first known usage is in the Natya Shastra (~200 BC), where it defines the regional varieties of folk performing arts, as opposed to the classical, pan-Indian margi.
During the height of the British Raj, many people from the then-undivided Indian subcontinent emigrated to other British colonies, in search of education and opportunity. After immigration reform in 1965, the US dramatically increased immigration from the Indian subcontinent. Communities that have remained distinct in South Asia have tended to mix in diaspora. Some second or third generation immigrants do not think of themselves as belonging to a particular nation, sub-culture, or caste, but as just plain South Asians or desis, especially as intermarriage between different South Asian diaspora communities increases.
Is there a better name?
There is no need for one. The word Indian, is fine. It's widely used. If you are confused with the other use of the word, just say native American. It is simple.
In Canada, in my experience, we generally say East Indian or South Asian to refer to people from India. South Asian includes Pakistanis and Sri Lankans as well, and perhaps others.
"Indian" to refer to aboriginal peoples has been somewhat deprecated in the era of political correctness, but we still have the Indian Act.
I would use Indian as an adjective rather than a noun. "He's Indian" is more often used for people from India; "He's an Indian" sounds a little odd and suggests Native American. Usually sentences can be rearranged pretty easily to use the adjective form.
This distinction is relevant for a variety of other groups—female and gay become borderline offensive used as nouns.
Here in Oklahoma the census says we have about 10% "Native American", but it seems like most of the rest of us who report something else to the census have some tribe we are associated with as well (for me, that would be the Osage).
To be honest, in conversation here most "Native Americans" actually prefer the term "Indian".
There are in fact not a few Asian Indians living here in the two major cities as well. If confusion is possible (you can't figure it out from context), often what you hear is "Indian (dot)" or "Indian (feather)".
However, that is in very relaxed circumstances. If you want to differentiate in a more formal way, we say "Native American" (or sometimes "First Nations") or "Asian Indian". For example, these are the terms used on US Census reports.
Where there is likely to be confusion, people could use "Bharat" in place of "India". It is an offical name for the country is it is easy to say. "He is from Bharat" should be easy to say and understand.
Indian is "Bharatiya". However badly you pronounce it, you get an A for effort.
I have cousins who are Native American and friends who are Indian, I think it is confusing that some people insist on calling Native Americans, Indians. It was a historical mistake made by Columbus, because he thought he was in India. Why do people insist on continuing the practice when he has since been discredited, and we no longer even celebrate his holiday? Also we now have a lot of people from India living in the US, sometimes for more than one generation. What do we call them if we cannot call them Indian Americans? I have co-workers who call both groups of people Indians, then add the clarify "with feathers" or "with a dot." Hum, how is that not offensive? But yes I agree with what someone else said, saying "he/she is from India" rather than "Indian" does make it less confusing. Also true Native Americans generally do not mind being called American Indians.
People from India are often referred to as "East Indians", in order to differentiate them from N.A. Indians. The term "East Indian" is quite acceptable and not offensive to a person from India.
Perhaps English could follow the Spanish custom here:
This is pretty simple and less confusing than having the same word for both persons.
Indian is the correct, as people say. Native American (US), or First Peoples(Canada) would offer more clarity if you were talking about an indigenous tribe. These terms are also more P.C.... although we do still have the Indian Health Service, and other programs.
If someone asks you to specify, or you need to specify, "Indian (from India)..." probably preferable to bringing feathers (or bindis) into the discourse... which might be interpreted as stereotyping.