As a computer games development student, this feels very relevant to me (as, I'm sure, it does to other software developers). Even a project I'd like to do, on my own, for a week, is very hard to finish. There never really seems like there's a point to polish after I've learned what I wanted to learn. I'm battling this literally as I write this comment - this is only another way to procrastinate. I find keeping rigid…
It could be that you need the code for later projects. (You can create a toolkit and restart a project you intend to finish.)
Personally, I've worked on at least 50 software titles. For my own, I've finished about half. That's normal. A driving game in Flash was fun, but too derivative of SpyHunter... but I did get the animation routines completed.
For work, all projects must be completed on-time and under budget. This one is easier: if I don't finish, I'm screwed and my reputation as a developer would suffer.
Each project has a 'ball'. If you keep your eye on the ball, put on some music and wrap it up.