You need to read your current hosts procedure and the prospective hosts information.
Generally there is a fee for transfer from your existing host as it takes a bit of admin, however, the host importing the domain is not likely to charge you as you will be a new client.
You will need to provide the new host with the key the old host gives you to allow the domain to be transferred.
In the mean time, back everything up, data dump of the databases is important, if something goes wrong in the process, you have got your back up.
You will need to read up what you need to do in this process as all host operate differently in terms of who is in charge of doing what.
A bit of advice, if you transfer the domain name and you have't got all your data, then likely as soon as the dmain is transferred, your webspace will be earmarked for recovery (deletion).