I discovered this real key-saver a few weeks ago. It makes Emacs appear to be positively psychic.
M-/ or dabbrev-expand completes the word you are in the middle of typing by looking at other words in the buffer. If no match is found it looks in other buffers. So dabbrev can complete the word or name you are typing on the basis of anything else you are reading in Emacs: the text you've previously typed, code or text in other files you have open, even documentation or web pages you have open.
If dabbrev completes your text incorrectly, you can press M-/ repeatedly to get other possible completions.