It's easy to point out dreams that came true whilst ignoring all the dreams that didn't. I see no way that dreams could actually predict the future beyond the normal way that you can predict the future. (I.e. You dream about seeing your grandparents because it's something you plan on doing.)
But deja vu is an interesting phenomenon. After going through a period of suffering from it almost every week, I looked up a few of the theories about why it happens. My favourite is that it's caused by what we programmers call a race condition.
These are the steps (the article writer claimed - I'm not sure on their science here) the brain takes when you experience something:
1. Store experience in short-term memory.
2. Check if anything in long-term memory matches what is in short-term memory.
3. Store experience in long-term memory.
The argument was that step 3 can sometimes happen before step 2, leading the brain to encounter a perfectly matching memory for what was just experienced. This explains the feeling that I've had the same conversation before, but not being able to remember where or when.
Even if not true, it's an interesting idea.