For launch, I personally try to decide whats essential to the application at hand - if <i>this</i> feature isn't in the application, is it still the same application?<p>Example: If you're making a todo list, you need to be able to add entries and mark them completed. Thats it. Reminders are nice, but not essential. Same with tagging and organizing todos, logbook to see when they were completed, searching the todos, etc. Very <i>useful</i> to have, but not <i>essential</i> to the application. A todo list is still a todo list without them.<p>After launch, its much more guided by A. What I personally think would be a nice addition to the application and B. What features are commonly requested by the user. B takes priority over A, if its a paid application. After all, you want users to recommend your product. What better way then to give them something that you know they want?<p>Example: I would want a way to see how often I complete tasks, what days that I'm most productive on, etc. Users request to be able to search todos and edit details. Thats what gets implemented first, and what I want gets done later, when there is more time.