I know that this is an old question, but WPF (at least now) provides a built-in way to handle this by specifying a delay:
<TextBox Text="{Binding=whatever, Delay=600}" />
This will make the textbox wait 600 milliseconds after a change before calling any event based on the change.