Spam email is a big problem and I haven't still found an adaquate way of dealing with it.
In most cases, you should never respond to any such mail because you will most probably see an increase in the amount of spam mail you will receive!
If you have direct access to your domain's email server, you can opt to block specific domains or email addresses. Since most of us aren't able to block these domains because access to the mail server itself is not possible, there are paid services which allow you to forward your email to them and filter it from all unwanted spam mail.
I have been fighting the problem for a while here and as chris says it is hard to deal with.
There are various ways of trimming it down. I use Eudora myself and used to use their filters to filter as best as possible, but it only works for a small percent of your spam and only works if you are getting the same emails over and over or you can nail down something consistent about you Spams (all come from the same domains).
The best way seems to use some sort of Bayesian [statistic-based] mail filter. These filters learn about your mail and try to pick out Spam using some sort of score.
The new version of Eudora (6), has a Bayesian Filter that seems to work pretty well. You can tweak it a little to try to get better results. The default is a score of 50, but if you find it missing too many, you can up the score - but you have to be careful not choose a score too high or you will get too many false positives.
There are also various programs that you can run on your system such as POPFIle, SAProxy or K9, which are also Bayesian Filters.