I used to run my mailserver at my house, when I had the ability to have static IPs (kinda a must), and the ability to specify PTR records (also a must, if you actually want to relay mail out). But since I live in a country (the US) that has such crappy internet connectivity, well, I don't much have that option anymore. Oh, and you also need an ISP that's willing to let port 25 in/out.
One thing I'll echo, and add to: Don't just find a How-To or Walkthrough and blindly follow it. You need to at least understand the basics (such as, why a static IP is necessary, why you need a PTR record, and what the hell is "port 25"). Beyond that. . . I would avoid Linux. I would avoid Windows. I would, and did, use OpenBSD. I guess FreeBSD would work well, too, but I don't much know it.
OK, that's my $0.02 on it. When I was finally forced to not run my server at my house, I had to use a hosting provider. And I wasn't about to use Amazon. But, hay, I just don't like using the most common thing. I only moved off Solaris 10 running on Sparc until I had to remove it from my house.
The moon is a planet just like the Earth, only it is even deader.