I absolutely hate trying to keep the declaration and definition in sync, especially during the early stages of writing some new code. I usually keep everything in the header as long as possible until I need to separate it out for some reason.
I have often wished there was a tool that could parse code to pull out the declarations from a c/cpp file and put them in a header file, or pull the function definition out of a header file and put it in a c/cpp file.