Being in a similar position to PB, I've just switched to giffgaff from 3. Very easy and mostly painless.
Ordered a SIM from giffgaff a couple of days ago.
Today, I phoned 3 to tell them I wanted to cancel my contract, listened to their customer retention spiel for ages, told them firmly that I didn't want to give them my reasons for moving or who I was moving to, eventually got passed on to cancellation who within a few minutes had sent my PAC code by text.
Went to giffgaff website, logged in, activated the SIM card, then filled in the PAC form to start the number transfer process - it should be done by Tuesday.
It feels good to be finally freed from the tyranny of phone contracts. Next time I want to upgrade my phone, I shall buy one outright rather than get tied in again. But my current phone is perfectly adequate for my needs for now.