If I have very few customers, it's a portfolio project. If I have a bit more, it'll break even and I can dedicate some time to it. If it grows even more, I'll try to make a business out of it.
But I think it's really important to remember that finishing is itself a skill that is worth learning and if you don't finish things, you gain no practice at that skill. Writing the first 80% of a hundred programs may give you a lot of skill in different domains, but it won't give you the ability to finish a program in any of them and get it to a point that it can benefit other humans.
You may want to check out a guy named Robin Sharma. You can find a bunch of his videos on YouTube. No need to pay for anything. The videos contain pretty much all you need. I'm trying to work on incorporating his ideas into my routines. What he talks about really is all about mentality and what sets apart superachievers from everyone else.
EDIT - just realized your question was specifically aimed at personal projects. The second paragraph still applies, in that case, but you can ignore the first as there won't be any embarrassment from personal projects not being completed. Oh, that just reminded me...for the personal stuff you can use one of those sites that is designed to hold you accountable by bringing in family/friends to monitor your progress and you set a clear goal with a clear penalty if you fail to deliver, and they are there to see if you follow through or not. The website I am familiar with is https://www.stickk.com/ but I'm sure there are others.
If someone else talks about a similar topic (e.g. a related article gets onto Hacker News, or someone asks "when will it be ready?") then I'm much more motivated to actually finish it.
If I need to find a job, I often try to write up the documentation and post Show HN projects. Occasionally I'll do that anyway, but it's easier when I'm in "writing" mode anyway (if I'm writing cover letters and emails).
The best motivator is to have someone else to work on a project together. Seeing the EspUSB WiFi mouse & keyboard through to production is something I wish I could witness, but I just can't get past the paperwork alone.
E.g. plan to put it on your homepage or github. Or if it isn't suitable look to present it at some event, a local hackerspace or even to your friends or relatives.
By having a goal like that you are forcing yourself over the edge while at the same time making visible what you are doing all the time which both benefits you in the end.
While this can be scary, with the right audience it can be extremely gratifying to get recognition for what you're doing.
Edit: of course you really don't need to finish every project you start. Sometimes you learn so much during a project that you would actually so it differently if you were to start again.