I keep comments open for all posts but I have Akismet set to automatically delete spam comments on posts over a month old. This really eliminates a lot of the spam that I have to peruse through every few days or so. Instead of hundreds of spam comments every few days I'm down to between 20 to 30 without a false positive yet. Works for me anyway.