Am I better off working on a a project that takes 4-6 month to build and launch or one that takes 18-24 months?
Why not have both? What I mean is, take a big project, break it into smaller pieces of 3 months each (features 1-10 in first iteration, 11-20 in the second and so on). Since you'll be releasing early, you can gauge the response to your app, and adjust the next iteration according to the feedback (or even drop the project completely if needed)