Not all projects are worth finishing, but I find that once the rush of learning new things have worn off and the only thing left to do is rigorous evaluation or polish my desire to work no it fades.
I find tying some reason to finishing them usually gets me more willing to do so. Giving presentations about my work has often served as a good forcing function since they have due dates associated with them and the fear of being embarrassed by my work outweighs the boredom of doing the last ~20%.
Not a panacea, but it helps me.
Combine a vague spec ("Not now kids. Daddy's working on a better Snapchat!") with design-it-while-I-code and you end up with a transporter accident.
This spreads out the tedium. I'm not spending 10 hours in one go completing something: I'm spending a couple of hours on it, then moving to a different piece and a different task.
When I'm in a good flow, it works out really well. And sometimes I find I finish a few projects in a short time.