Applet are "small applications". They differ from "real applications" in the fact that they normally are embedded in a narrow environment in which and only in which they can function, implementing a very limited functionality.
The term applet is more often used for browsers, where the <applet> tag is used in HTML to call Java embedded applications. Bandwidth constraints forced such applications to be rather small, while security considerations forced them to use only software already installed on the computer, which for Java is its runtime (JRE).
However, this term is also used (or misused?) with an expanded scope, and may then pertain to JavaScript, ActiveX, Flash or even HTML chunks (using the <DIV> tag), but is not limited to these environments. It then refers to to a small and severely limited application with a small display (or none at all) which requires very little local installation (none is preferred).
Exactly the same tools are used to compile applets as are used to compile applications, so the only real difference in the end is the applet's small physical size, limited functionality and no need for local installation.