All three of these adverbs indicate the repetition of an action, like the English "again". They differ in usage, however:
Whereas 又 indicates a repetition of an action that has already taken place, 再 implies a repetition of an action in the future. Also, 再 is only used in /declarative/ sentences, plus questions ending in 好嗎:
昨天他來晚了﹐今天他又來晚了。
(repetition in the past)
你今天來晚了﹔明天再來晚﹐我們就不讓你進來了。
(repetition in the future)
你再喝一點兒橘子水﹐好嗎﹖
Also, 又 can be used for the repetition of a periodic action or occurrence, even though it has not yet taken place:
明天又是星期一﹐我們又要上課。
新年又要來了。
還, on the other hand, usually expresses a future repetition:
你明天還來嗎﹖
It can also be used in an interrogative or declarative sentence with an optative verb. In this situation, it is placed before the optative verb and an optional 再 can be placed after:
A: 你明年還能(再)教我們嗎﹖
B: 我明年還可以(再)教你們。