Since closure reasons may change from time to time, this answer only reflects current time situation, which is 11 January 2014. Previous or new changes in the closure logic changes is not (and can not) reflected to the answer as it should be.
There is two separate objectives in this action:
- Helping people
- Doing your duty
Why SO and other SE sites exist? Because some people needs help and some can help them. From this point of view, doing your basic duty
(maybe duty is not the correct word in here) in SE is help people if you can. so if you want to contribute, then help if you can.
Also, each SE site have its own moderation logic and rules. Since (most of the) rules are decided by the community itself and you are a part of the community, you can take part in those discussions to shape the community. But you must do your duty as it is, if you wish to contribute. If it is about closing a question and question do not fit, then you may feel yourself free to vote for closure even if you already answer it.
So two community duties on a cross-road right?
But whom to help
If question is self-descriptive and you know how to help. Then you can answer it if leaving a comment is not enough. Because helping people is important in here. But also this community do not accept some question prototypes. Let me explain with two examples:
Asking advice in choosing a tool : This is opinion based and do not have a valid answer (since it may change from person to person). But I see no problem about giving your advice. Because Question owner needs some advice and you have yours. But also do your duty and vote for closure since it is opinion based and answer may become lessly true in time. In this form, it do not offer much future reference to other users. But do not forget, you may get upvotes, but as time passed and your answer became out-of-date, you may receive downvotes too.
Doing somebody else's homework: Is it helping to that person? In fact no. S oyu can not count answering a such question as helping him unless you do not give a complete answer but show him how to solve it. Voting for closure -in fact- is helping him since you ask him do show some effort and try to do it and ask what he had tried.
So from this perspective, helping people ( by answering or not answering) who need help is the most important thing, second is doing one of your community duty and help community be better in shape and scope.
But, if you thing answering a such question will not help the person and is done just for reputation, then you can feel free not to up-vote or to down-vote a such answer. It is all up to you. Down-voting that answer might be right or wrong according to person but here is a community and everybody have his right to vote.