Keyword used by some computer languages...

BASIC
The END command ends your program. Of course, you can also end running your program by "falling off" it; this is why
10 FOR I=1 TO 10
20 PRINT I
30 NEXT I
works.

But END does more than just make your program pretty. When the interpreter reaches it, it will stop. Even if END is not the last line of your program! So

10 FOR I=1 TO 10
20 GOSUB 1000
30 NEXT I
40 END
1000 PRINT I, I*I
1010 RETURN
will also work. Leaving off END in line 40 will print "11 121" again and crash, as the subroutine as line 1000 will be entered with no GOSUB.

Interestingly, some interpreters appeared to enforce having just a single END in your program. And even if you could have several, trying to say e.g.

700 IF J>I THEN END
could be interesting.

Pascal.
Pascal uses "end" as its block terminator. So you can say
(* Ensure i<=j *)
if i>j then begin
  t := i;
  i := j;
  j := t
end
assuming you've defined appropriate variables i,j,t.

Some places (like functions or procedures) need blocks, so they must end with "end".

The main program is a very special block. It must appear last in the file. And its end must end with a period:

program hello(output);
begin
  writeln('hello, world!')
end.
Perl, stealing from awk.
Perl executes END "blocks" (in fact subs of a very peculiar nature) at the "end" of execution. END blocks are the counterparts of BEGIN "blocks"; as such, whereas BEGIN blocks are executed before the main program in the order in which they appear, END blocks are executed after the main program in reverse order of appearance. awk does the same with END, and with the same apparent syntax, but in awk END is a pattern which matches only once, after the last line.

END blocks are useful for performing "last minute" tasks. You'll often find object serialization and other persistence of state information stored in an END block. One-liners and other programs using perl's incredible -p and -n options will use END to perform tasks after reading all input. For instance,

#!/usr/local/bin/perl -wanl
BEGIN {my $sum }
$sum += $F[2];
END { print $sum }
will print out the sum of the third column in the input. This example also uses -a for autosplit, -n to loop the main program over all lines, and -l to append the line ending to all lines printed.

END blocks can be nested, though this might not be such a great idea:

#!/usr/local/bin/perl -wl
END {
  END {print 3}
  print 2;
}
print 1;

Fortran.
Fortran, recalling the good old days when it was ForTran or FORTRAN or WATFOR, COMMON BLOCKs were common, the real programmers were explicitly IMPLICIT and the value of PI is changed, puts an END "statement" at the end of every file "program module" (wimpy standards-compliant Fortran90es for C and C++'s translation unit).

Further trying to appease Djikstra (of all people), it also uses an "END" statement (note change of quotes!) to end SUBROUTINEs, FUNCTIONs, STRUCTUREs and Hollerith knows what other monstrosities they added when they took out arithmetic if. Of course, these are called by names like "END SUBROUTINE", "END FUNCTION", "END STRUCTURE" and "END THE INSANITY".

Regardless, execution of the program terminates at the first STOP statement encountered. You probably don't want to try falling off the end of a Fortran program, though this too will cause it to terminate.

PL/SQL (and other 4GLs).
Having designed and written some genuinely structured languages, the people at Oracle decided to steal syntax from...

...Fortran! (See above). So you have END PROCEDURE etc. in these languages too.

csh.
csh claims to be a UN*X shell with C-like syntax. It even uses "==" for equality. So naturally it doesn't bother with {...} for block structure. Oh no. It uses an "end" to terminate a block:
foreach x (a b c)
  foreach y (1 2 3)
    echo -n $x$y
  end
  echo ''
end

Thanks to C-Dawg and m_turner for reminding me of forgotten languages and "reminding" me of languages I'd never heard of.