I used to fall in that same trap all the time. Ya work on something for a month, get demotivated or think of something cooler/more fun, then work on that for a month..before you know it you've got 20 unfinished games or what have you. Here are some things that have helped me..
-Take a break from game development/games as a whole. Eventually you'll start thinking about your awesome project and how badly you want to work on it and finish it ^^
-Work on a different aspect of the game for a while. Tired of spriting? Go work on some music. Tired of level design? Go make some bosses and enemies. Tired of that? Make some collectibles and powerups!
-Never work on something just because it sounds cool or whatever. Make sure you can do it and really, really want to. The most demotivating thing I can think of is fixing bugs for hours on end or days/weeks/even months on some feature set you don't fully understand. You finally finish it and..well..great, now that's done. Only 5,000 more features to go!
-Don't be afraid to cut features. Sometimes less is more. I see lots of games with full-blown crafting and stuff and 9 times out of 10 it's just a burden.
-Polish polish polish! If you can't think of anything new at the moment go and improve what's already there. Your game will look & feel better and so will your outlook.
-I've found that writing stories for my games helps because it creates a sort of sentimental/emotional bond between you and the game, and the story needs to be told! The thought of no one ever knowing it makes me sad, so I work harder!