Let's say, you flag a mail on GMail as spam. GMail's filters will learn: both the spam filter for your inbox as well as a shared filter. If the shared filter learned that all mails from that provider are junk, then gmail may not accept any more mails from that provider.
But the provider is interested in his ability to send mails to gmail customers - because his own customers demand it. So, a good provider would just kick out that rouge customer who sends junk.
And that's where the fun begins: A big provider can deliver spam, if it's only a small percentage of his usual volume (too big to fail). And not every provider is cooperative. And the process is slow - some filter has to be fed a large amount of junk, so it finally rejects a large portion of of the valid mail.
A better way is: Get your provider to send an abuse mail to the origin. In my experience, it's still a fight against windmills, but every bit helps.