I recently had this. The Todo List app crashed while I was marking stuff in the list. It corrupted the TodoList index, and because the Todo List is shown inside the DateBook program, it meant that the DateBook prog wouldn't work either.
You can check whether it has gone mad by downloading zdbat
, which lets you edit/view the databases via the command line. Once it's installed, go to the command line and type "zdbat todo -r". If the file is okay, it should list the contents of your ToDo file, if not it will give you an error.
You'll have to delete the ToDo files. They are in ~Applications/dtm/
You should back them up, just in case (but I doubt you can fix them).
In the terminal, do this:
mv ~/Applications/dtm/SLTODO* ~/Applications/dtm/oldtodo
Your Todo and DateBook should then work okay (although obviously, you've lost your todo list if you had one).
If the above doesn't work, try reading the datebook files with zdbat (zdbat datebook -r) to see if they are okay.