I strongly prefer recursive descent for parsers for a different reason: clarity. They are easy to read and they are easy to generate helpful error messages for the user because right there in the code of your parser you can provide great, contextually-relevant error messages.
I’ve tried parser generators a few times, but after running with the code for a while, it just doesn’t offer me the level of error reporting flexibility that I can achieve using a simple descent.