There's no challenge to it. I have my own domain up at Zoho.com for free to accept and send messages but at home I have a Synology NAS which has a mail server as a package. Turn it on, answer a few easy questions, and you are running. I use that one to store all of my messages that I want to keep.
I have my email client configured with the public (currently Zoho.com but it can change easily) and my private. If there's a message I want to keep I just drag it over to a folder that's on my private server or for some things such as email lists I just have a rule that moves it over automatically.
I've had problems in the past with my mail provider so I just get a new one. I switch the DNS entries over myself (I host it with freedns.afraid.org). I still have access to the mail even after the switch so I move everything over to my private server and after a week I tell them to close my old account down.
I don't send any mail out using the server on the NAS. It's just there to store messages. It doesn't receive any messages either. I have it behind a firewall which I haven't opened the ports because I don't need to access the messages away from home. If I know that I will need an email I'll just leave it on what I'm calling my public server. Basically the server on the NAS is an archive.
My setup probably won't work well for everyone but it meets my needs perfectly.