The goal of any piece of software is to meet a need. Gmail met a need by freeing users from a single computer and letting them check their e-mail from any web browser. Photoshop met a need by allowing users to manipulate photos in ways no one had ever done. Our Notekeeper application meets a need by allowing us to record simple notes for later reference. I know, sort of a letdown by comparison but we've got to start somewhere right?
When building software, it's a good idea to spend time up front writing out a specification for your project: what it will do, what it will look like, and what it should have. Remember that if you don't know what you're building, how will you ever know if it's done?