I'll start with some advice my advisor Amit Chakrabarti gave that I found quite useful:
(1) Keep a research journal and write in it every day.
Its easy to forget about the details of what I was thinking about 2 weeks ago. Revisiting previous thoughts/problems/miniresults enables me to avoid reinventing the wheel. Also, I found it especially useful to write down places where I was getting stuck and not making progress. Revisiting later often let me break through whatever I was trying to solve. In a different way, writing in a journal forced me to spend those extra ten minutes at the end of the day to follow through and finish up whatever task I had left that day. Otherwise, I probably would've just put it off until the next day.
(2) Set aside time to read research papers, even if they're not directly related to your current research.
I get tunnel-visioned, so if I don't do this I tend not to keep up with current research.
Finally, it's been very useful to me to think about my research right before going to sleep/in the shower/while exercising/on the subway/etc. Some of the other commenters seem to disagree here, especially with the right-before-bed part, but I've found it to be very useful. I tend to look at the problem from different directions in these kinds of situations, and I might spot some insight I wouldn't have at work.