To block only PMs and still see public posts, go to your inbox and click on a message from the offending poster. At the bottom left it says "Block so&so's private messages". Click that. Problem solved.
To block PMs from someone who has never sent you a PM you have to use the Ignore feature.