Ive found generating your own leads tends to be a lot better than lead generation services. For all the reasons mentioned. Designing your own message, your own information for the customer to read, educating the customer in your environment. Having the customer pushed directly to your website, controlling the message end to end. Directing them there with blog posts shared on facebook, paid ads on facebook, and a google google adwords campaign is far better.
The people who know how to do that, are creating these amalgamated sites, and controlling your lead flow. They generate leads for $30 a pop, and sell them to 5 roofing companies for $25 each and have zero skin in the game as far as making sure these people meet a quality contractor or get a good roof done right.
http://www.sargeantsroofing.com - this is what we did... the blog generates a ton of leads as do the ebooks.