There are two different circumstances that motivate this request.
A question is closed for the wrong reason
This I see having two distinct sub-categories:
a) Closed As Duplicate of a question that it isn't really a dupe of
b) Closed for some reason that really isn't correct, but chosen by majority of the closers anyway
A question is closed for one reason, but then after it is edited should actually be closed for a different reason.
I just witnessed a question that didn't really ask a question, so it should have been closed as "unclear", but it was closed as "not showing minimal understanding". Looking at the edit history this was because the user didn't originally include code, and then edited it in. At this point, when I saw it in the review queue, I didn't want to reopen it, but the close reason really needed to be changed.
I propose that even after a question is closed that users who haven't yet voted on the open/close status of that question (that issue is taken up in a different post) should be able to vote to close as a specific reason, and then if the quantity of voters for a reason becomes predominant, the close reason would change to that reason. This could also allow users to change the duplicate that a question is linked to.
So in the example I cited, when enough other users have voted for the "unclear" close reason, the close text box on the question would change to that reason.
It's important to have the correct close reason on a question so that not only the poster of the question can learn from it, but the users seeing it in the future (especially those who google into it) can see why the question is closed, and so are educated about what we expect on our sites. The close reason is very up front and "in your face" as opposed to just leaving a comment, which is easily lost in a block of comments.