Is there any difference between "antworten" and "beantworten"? In which situations should I use one and in which another?
Ich antworte auf etwas (I reply to something), but Ich beantworte etwas (I answer something).
In German, both is used equivalently, but you need to make sure to use the correct form (see the auf above).
Just to add a little further detail and perhaps simplify the other fine answers, think of it this way:
"Antworten" is an intransitive verb, not performing direct action upon something and thus needing help to transfer the action either by using an auxiliary word followed by the Accusative case or else simply the Dative case without the auxiliary word.
"Beantworten" is a transitive verb, performing direct action upon something by using the Accusative case with no need of further help from an auxiliary word.
"Be-" is a common prefix to change an intransitive verb into a transitive one.
If you reply to a question or answer someone then you go with antworten which means to respond, to be responsive. If you answer a question or a request then you go with beantworten which means to give an answer. Additionally if you response to a letter you also use beantworten which now means to give a written response.
In almost most cases you can replace beantworten with antworten auf, i.e. when leaving out the prefix be you have to use the preposition auf.
Note that beantworten carries the connotation of fully or, at the very least, sufficiently answering the question, antworten auf only suggest that you reply but this response may not be satisfying.
Thorsten Dittmar's answer made me aware of something I just missed. English reply to something is the equivalent to German auf etwas antworten while English answer something is the equivalent to German etwas beantworten.
Man kann auf eine Frage antworten oder jemandem antworten [=reagieren, erwidern], aber eine Frage oder eine Anfrage beantworten [=Antwort geben]. Außerdem kann man auch einen Brief beantworten [=schriftliche Reaktion abgeben].
Man kann nahezu immer beantworten durch antworten auf ersetzen, verändert dadurch aber leicht die Aussage. Beantworten bedeutet, dass die Frage vollständig oder zumindest ausreichend beantwortet wurde, antworten sagt ausschließlich aus, dass auf die Frage reagiert wurde, aber die Frage ist möglicherweise noch nicht zufriedenstellend beantwortet.
The other answers do almost cover it all... but some is missing so here is my try:
beantworten is always done to the question.
You may or may not add the person. The translation that is closest in grammar to that is to answer.
Note however, that beantworten NEEDS an object. So the following wouldn't work.
Antworten itself without auf cannot be done to the question (it is intransitive). Thus, the closest translation grammar-wise is to respond.
Now, others have pointed out antworten auf. This is correct but there is a difference between antworten auf and beantworten in that the former is really just a response, while the latter implies that it is complete and the matter is settled. If I beantworte a question, it is answered. The question is no more. If I antworte auf a question, my answer can ambiguous, incomplete or even a counter question. It is really more a response than it is an actual answer. For those who are interested: I have discussed this very question in my Blog in more detail.