kill -l lists the signal names, which are also given in <sys/signal.h> (you must strip off the common SIG prefix).
The terminate signal will kill processes that do not catch the signal; `kill -KILL ...' is a sure kill, as the KILL (9) signal cannot be caught. By convention, if process number 0 is specified, all members in the process group (i.e. processes resulting from the current login) are signaled. (But beware: this works only if you use sh(1); not if you use csh(1).) Negative process numbers also have special meanings; see kill(2) for details.
The killed processes must belong to the current user unless he is the super-user.
The process number of an asynchronous process started with `&' is reported by the shell. Process numbers can also be found by using ps(1). Kill is a built-in to csh(1); it allows job specifiers of the form ``%...'' as arguments so process id's are not as often used as kill arguments. See csh(1) for details.