Right, so you’re set up with your own email system that won’t let big dirty Google (or, now, Microsoft) read your messages, and you’re keeping an eye on the sites tracking your browsing. Good! The next problem is DNS.
Every time you type in a website, like cnn.com, it has to go out to the DNS servers and ask for its IP address. Sounds harmless, until you realize that by default your system will be going to your ISP to ask for whatever porn site you’re looking at. Ergo, they know every site you’re trying to visit (and they have your billing data to which to associate your browsing). This one is trickier to fix, so this link is a lengthy forum discussion of the difficulties and options available. It’s worth a read, even if you’re not up on some of the technical aspects.
For the record, I avoid this by not using my ISP’s DNS servers, but I’m not 100% secure because I use other public DNS. Like the Gmail comment a couple days ago, there’s the waffling over “is it worth the hassle for greater privacy, or is a compromise acceptable”. It all comes down to your preferences. I don’t, however, use Google’s DNS.