But, if I can't ignore annoying people, I am less likely to contribute at all, because why would I come back to place that annoys me, to do free work?
This is really a personality thing. One of our top contributors over the last two months left because they were annoyed by a rather small thing (maybe one particular person). This is not what we want, of course. However, from my personal experience, things like these don't happen too often, therefore such a feature would introduce a social component that goes way beyond the scope of Super User (which is, asking and answering questions).
Are there users who really post so many questions that they need to be ignored?
I know the ability to focus on the people I feel like helping and ignoring the rest is what helps to maintain my sanity and willingness to help anyone at all.
Focusing on the important stuff can be achieved by browsing through the tags you're interested in or sorting questions by votes. If the user who annoys you asks questions under a tag that doesn't interest you, add it to the "ignored tags" list. If on the other hand their questions are within your scope of interest, why not answer them?
You still haven't given us enough information to actually help you out. If there is one person posting stuff you feel doesn't belong on the site, flag or downvote them. This would include rants, off-topic matter, personal attacks, poor questions, et cetera.
And on the other hand, I strongly dislike the idea of preventing others helping someone just because I am annoyed by him. This kind of environment leads into people getting banned/downvoted by random just because some higher-up had a bad day. Which is plain wrong.
This would again mean that the questions or answers posted by this person are objectively still a good fit for the site and not necessarily bad. If you say "preventing others", that would imply you flagging a post for closing or deletion for the wrong reasons. If that were to happen only because you are annoyed by the person, you're abusing the system.