I believe that in the sentence
Ich danke 'du/dir/dich'
- ich = subject
- danke = verb
- du = direct object.
Wouldn't that mean that it would be "Ich danke dich"? I hear people say "Ich danke dir" frequently and it's a little confusing.
is the only correct version. Danken takes the dative case. You will never hear otherwise.
I would recommend to forget about the concept of direct and indirect object; or better, you should realize that the definitions of direct and indirect object in German and English are not identical. Neither is the use. So just because some verb takes a direct object in English doesn't mean that that is the case in German.
"Ich danke dir" = "I give thanks to you", not "I thank you". Maybe danke is acting like the accusative and the verb and dir is the dative.
"Helfen Sie mir" = "You give help to me", not "You help me". Likewise, maybe helfen is acting like the accusative and the verb and mir is the dative.
Ich = nominative
More information about German Dative Verbs on about.com.
Emanuel already mentioned that Ich danke dir is the correct way of saying I thank you.
I just want to tell you how you can simply answer such a question with help of some online tools. Unfortunately, only a few sources mention the necessary information explicitly and, if they do, this information is sometimes a little hidden.
Starting with Duden, you'll find the following example to the entry to danken:
In this sentence no object is given and since the hint tells you that the dative object is missing, you can guess that the usual object following danken is dative.
On Wiktionary (and Duden, too) you'll find this information:
With a little knowledge of German, you know that the ending -m in jemandem hints that the object is dative. Accusative would be jemanden as in jemanden verfolgen.
Finally, I need to mention that danken can be followed by dative, accusative and even genitive objects.