I'm doing exactly that, and it works like a charm. Get a DynDNS, backup mx and SMTP relay and you're good, or get a domain provider like strato.de that already includes all three with the domain.
Spam is also manageable. I get maybe 1-2 per day that make it past the filter, and I do have to add some custom keyword filters from time to time, but that's about it. Fetching updated filter lists and self-learning from past errors keeps the filter up to date and is completely automated.