If you're literally running an e-mail server from your cable/DSL connection, you're much more likely to be marked as spam, regardless of doing everything else correctly (SPF/DKIM/reverse DNS), because there are lists like SORBS DUHL [1] and RBL-DNS DUL [2] that index these. Some servers block entirely, others just use it as an indicator that your mail is more likely to be spam.
Many spam filtering systems work on a 'points' system, so being on the dynamic IP list adds a lot of points, and if you also have other things that add points (being a mailing list, having 'unsubscribe' links, attaching images, having links) it might be enough to put it over the edge and get marked as spam.
You can do a lookup [3] to see if you're on any of these lists.
[1] http://www.sorbs.net/faq/dul.shtml