For me a lot of times it's because I simply forget what I was doing. I'll work on a project a lot for a week then not touch it for months. When I come back to it I have no idea what I did or where what I planned to do with it and often end up scrapping parts of it. Sometimes I don't work on it for so long that the technologies I used at the time are versions behind so I start all over again and the cycle continues.
I am trying to get out of that cycle by doing at least 1 line of code each day. So far so good. I have completed 1 project over the last month and am working on 2 more. I guess it just helps me keep momentum.