Web page hosting?

There are a few ways to go about this.

Normally you would setup an account at a new webhoster and move the domainname to that.
In order for a domainname to be moved, a confirmation email is sent to the emailaddress listed in the 'Owner'-field. A link in that emailmessage has to be clicked by the owner so the move is actually iniated.

If the current webhoster/person is reasonable, then you could honestly explain what your plans are and that you like to cancel your hosting-agreement after the next renewal and tell them you will be moving the domainname to a new webhoster.

If the webhoster doesn't know how "handle" normal cancellations and becomes greedy and thinks he can prevent you leaving by taking your site 'hostage', then usually some prodding with legal-actions should be enough to make them think otherwise.
Before you get into this situation it is wise to already have made a complete backup of your website.

If you have access to your domainname's control panel you should be able to find a way to backup and download everything (unless that function is blocked by the webhoster).

If you have full DNS-control over the nameservers of your domainname then you can setup a new site with a different webhoster and work on the site in the background while the current one is still running.
After your new site is up and running you can change the nameservers to the new hoster's webserver and the new site will come online in about a day usually.

The smartest course of action depends a lot on how you're current standings are with the webhoster, if you have a backup, and if the webhoster is listed in your domainname as a 'admin and/or technical contact'. As such they can make life hard on you if they get to idea you want to move.
If they really billed you $500,- for you to be able to download a bunch of photo's then I don't think they'll let this 'gold egglaying goose' runaway easily.