You know, this question is actually a really tricky one to answer for anyone who is not a part of that world. And those who are "part of that world" seem to have trouble explaining it in ways that everybody else can understand. I'll give it a shot, though I profess to not totally having a feel for it myself.
Computer Engineering -- This seems to be the more "practical" of the two. People who work in computer engineering seem to focus on the design of computer hardware, circuitry, and software. It deals with developing computer systems that help automate our everyday lives. In this way it is "practical..." interested in the application of computer science into workable products.
Computer Science -- From what I can understand, this is the more theoretical of the two. It focuses on information. Though the word "computer" is in the name, the computer is more of a tool for the greater purpose...in the same way a telescope is a tool for astronomy but is not astronomy itself. From what I can tell, Computer Scientists are less concerned by the practical applications/development side of things and are more concerned with the philosophical/informational side of things.
Of course, the two bleed into each other, and it is possible to be interested in both because one sort of feeds the others. Today's theoretical is tomorrows practical...it just takes someone to develop it and someone to dream it up.