Merriam-Webster's Eleventh Collegiate Dictionary (2003) identifies the following distinctions between complete and finish:
CLOSE, END, CONCLUDE, FINISH, COMPLETE, TERMINATE mean to bring or come to a stopping point or limit. ... FINISH may stress completion of a final step in a process {after it is painted, the house will be finished}. COMPLETE implies the removal of all deficiencies or a successful finishing of what has been undertaken {the resolving of this lat issue completes the agreement}.
S.I. Hayakawa, Choose the Right Word (1968) offers this comparison:
Finish and complete men to bring to an anticipated end by doing all things that are necessary or appropriate to achieving that end. Although the two words may be used as exact synonyms, complete suggests the fulfillment of an assigned task and is therefore not always an appropriate substitute for finish. An author may complete or finish his novel; a reader might finish it, but one would not say that he completed it unless he were reading it as a school assignment.
Given how close in meaning the two words are, I think Hayakawa's argument that complete tends to be more narrowly associated with assigned tasks than finish is makes a good point. In my experience, people say, for example, "Are you going to finish [or finish eating] your dessert?"—not "Are you going to complete [or complete eating] your dessert?"
Nevertheless, some degree of idiomatic variability is evident, too. For example, while one might argue that "writing a novel" is no more of an assigned task than "reading a novel," English speakers do not typically use the words completed and finished in exactly the same way to characterize the two activities. On the one hand, it sounds quite normal to me to say of an author either "She completed her novel" or "She finished her novel" as a way of indicating that the author had successfully reached the end of her work on the novel and that the manuscript was now ready for publication (or editing, as the case may be). But in speaking of a reader, "She finished the novel" seems far more natural than "She completed the novel" as a way of saying that the reader had read the novel all the way through. This perhaps reflects a distinction between finished as meaning "got done with" and completed as meaning "made whole": the author can be understood either to have got done with writing the novel or to have made the novel whole; but the reader can be understood only to have got done with reading it.