It depends on what "half finished" is.
I worked on a private project just this week, that included a number of distinct features; and I faced the same question (even though it was a rather minor issue).
For example, one feature of the application worked perfectly. It's wizard that guided the user through entering some data and finally generating a PDF-file. Everything worked perfectly, all beautiful code with a fully AJAXified interface. One minor issue: the PDF contents were wrong. Because the PDF is the most important part of the feature, I didn't release it until I fixed the errors.
Another feature of the same application, maintains a members table. Ultimately, this table will contain 900+ entries, so speed and a handy interface are quite important. The feature currently has neither, but that isn't a problem: the table won't have more than 100 entries for another month. All required features (adding, removing and editing rows) work, so I released it.
My point: determine the minimum set your features must have to help your customer, built it and release. Keep improving and releasing them until they match your quality criteria.