I think your confusion is common and revolves around the difference between a redirect and an alias.
Ron is an alias for Ronald, and both are aliases for Carnell. If someone comes up to me at a party and addresses me by any of those names, I'm going to respond. He's got the right person. On the other hand, if he comes up to me and calls me Frank, I'm going to point across the room and send him over to Frank. He doesn't have the right person, and he literally has to walk away from me to get to the right person.
If you go to an URL, either by clicking a link or typing one in, and it immediately changes to another URL, that's a redirect. You just got sent over to talk to Frank. If the URL in your browser never changes, that might be an alias. You're still talking to Ron, Ronald, or Carnell. The thing about an alias, though, is that's it's pretty much transparent. You can't really tell how many different names I'll respond to, and you can't really tell which I might prefer to be called.
There's a technical side to this that is important, too.
When you come up to me at that party, imagine that I hand you my business card. If you call me by any of the aliases I recognize, that card has a big 200 printed on it. The 200 is called a response code and is sent to a browser (or spider) any time they request a valid page. The 200 response code means OK and is the flip side to the well known 404 response code, which means Not Found.
If you come up to me and call me Frank, however, the card I hand you is going to have a different number on it, usually a 301 (permanent redirect) or 302 (temporary redirect). When you get across the room, Frank is going to hand you his own 200 card. This is important stuff because those response codes tell the browser (or spider!) what is happening.
There are a ton of tools on the Internet that let you check which response code a page is returning. Run a Google search for
page headers tools and pick one you like. Running your page through one of these tools will show you the Response code being returned.
The trouble with aliases is that they usually lead to duplicate content. If you come up to me once and call me Ron, then come up to me later and call me Carnell, and if I hand you a 200 card each time, you really don't know what I want to be called. Chances are, you'll just pick one at random, and since my luck always sucks, it'll probably not be the one I like best. It's the same with the search engines. If you have two domains returning the same content and both are giving a 200 code, the SE has no idea which you would prefer to be listed . . . and it
really doesn't want to list both. So, it'll pick one for you. I hope your luck is better than mine.
If I 301 you over to Frank, you'll know next time not to call me Frank. He's Frank, I'm Ron. Frank will get indexed, Ron will be ignored.
Similarly, to make a closer analogy, if you walk up and call me Carnell, I can still hand you a 301 card to Ron. It's the equivalent of telling you to call me Ron. We're buddies, right? You're still talking to the same person (an alias), but the 301 response tells you which I prefer.
It's really not much more complicated than that. You have to decide which domain you want indexed (and there are advantages to both), and then make sure the other domain is sending a 301 redirect. Your new host is probably going to configure an alias, because that's easiest for him, so you need to make sure he understands the difference. You want a redirect, not an alias.
Which redirect you want is still up in the air.

Warning! Assuming you already have a 301 in place, if you change what you have right now, you should have a REALLY good reason for it, because that change will not be without cost. It will take time, usually a few months at least, for the search engines to readjust to what are essentially new instructions on what you want. Eventually, they'll get it right again, but your rankings will very likely suffer during the transition. Sometimes, that cost simply has to be paid, but it's not something that should be done lightly.