I can think of lots of examples like the Ute (yoot etc) and so on.
In many cases it's because there's another language in between the local one and English. "Sioux" was first used by the French before English borrowed it. "Ute" is not exactly unusual for English: see use, union, usual, etc.
CommodoreCoCo has given a good basic answer. I'd like to add that several of thoses languages were without any kind of written tradition and that it is only today, afetr the fact, that these many discrepancies are coming to light and critical evaluation. Also, several of the names given by third parties had no connection whatsoever to the ones the natives gave themselves. For instance, some of the Hurons actually called themselves the Wendat (which proceeded to Wyandot), but "Huron" was a french term meaning "screamers" - needless to say, the term Huron is somewhat insulting in polite Wendat society, and I avoid it when discussing with them.
The re-appropriation of their own legal names by several first nations from third party transcriptions and marginally competent scribes is an ongoing process. In Canada at least, first nations regularly update legislation with revisions to the spelling of their names. For instance, recently, the following nations modified the spelling of their names to reflect what they believed was a spelling closer to the one they espouse (see C.P. 2011-1398 in Canada Gazette Part II, Vol. 145, No. 26):
The Nicickousemenecaning changed their spelling to Nigigoonsiminikaaning
The Kwa-wa-aineuk to the Gwawaenuk Tribe
The Sooke to the T’Sou-ke First Nation
The Tsawataineuk to the Dzawada’enuxw First Nation
And several others.
Side-question: I guess I've never heard anyone say 'Sioux' out loud since I've always assumed you would pronounce it as a French word.
I've searched a bit and all I can find are voice clips of Americans saying 'soo'. How do/did the French and the Sioux themselves say their name?
To elaborate on what others have said, it highly depends on what language was spoken by the European peoples who encountered them or whoever introduced them first. English speaking explorers were certainly not the first to encounter native tribes in many areas. The French had a number of colonies and very good relations with native tribes (see the French and Indian War). The Spanish had a number of colonies in the South. The Dutch had colonies around New York.
Being an explorer means that everything you know is learned through your interpreter's language, prejudices, and culture. When moving into a new territory, your first info about people (and the names given to them) come from the people you already know, who tend to be at war or at least in competition with each other.
Most of the First Nations names are the abusive terms given to them by their neighbors. 'Apache' is (I think) a Navajo word meaning 'enemy'; Their own name for themselves was (several versions depending on tribe) 'Tinde' or 'T'enne.' 'Sioux' means 'snake' in the language of a tribe working with the French explorers (hence the French spelling).
This is how the rest of the world works as well. Both names for Germans ('Deutsch' and 'German') are terms meaning 'they make good slaves' from the Celtic. The term 'slav' is the origin of 'slave,' because that's what their Viking masters thought of the Russian peasants.