Anonymous methods
Syntax
Anonymous methods let you supply methods to other methods as parameters. Similar to method pointers but more flexible, this is a feature takes some time to appreciate but is used in other languages to build scaleable architectures such as Google's MapReduce search algorithm.
type
  TDemoAnonMethod = reference to function (n: Integer) : integer;
procedure DisplayModifiedValue(n : integer; AnonMethod: TDemoAnonMethod);
begin
  Display(AnonMethod(n));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
  DisplayModifiedValue(5, function (n : integer) : integer
                          begin
                            Result := n * n;
                          end
                       ); // displays 25

  DisplayModifiedValue(10, function (n : integer) : integer
                           begin
                             Result := n + n;
                           end
                       ); // displays 20
end;
Notes
Further examples
John Kaster (Emb.) uses anonymous methods to extend the functionality of TField.
http://edn.embarcadero.com/article/41103
Barry Kelly (Emb.) discusses using anonymous methods instead of "out" parameters.
http://blog.barrkel.com/2008/09/anonymous-methods-as-alternative-to-out.html
Lars Fosdal discusses using anonymous methods for Lambda expressions, isolation glue and for threads.
http://delphi.fosdal.com/2008/08/anonymous-methods-when-to-use-them.html
Craig Stuntz (TeamB) uses anonymous methods to solve a mathematical problem.
http://blogs.teamb.com/craigstuntz/2008/08/28/37831
A StackOverflow discussion on ways to use anonymous methods.
http://stackoverflow.com/questions/256146/can-someone-explain-anonymous-methods-to-me
Further reading
Closures and functional programming
Joel Spolsky introduces the concepts behind anonymous methods or closures.
http://www.joelonsoftware.com/items/2006/08/01.html
Pawel Glowacki (Emb.) responds to the Joel Spolsky closures article.
http://blogs.embarcadero.com/pawelglowacki/2008/09/20/38521
The case against anonymous methods
Jolyon Smith presents his views on why anonymous methods are unnecessary.
http://www.deltics.co.nz/blog/?p=48
A spanish blogger presents his reasons against anonymous methods (in English)
http://delphidicas.blogspot.com/2008/08/anonymous-methods-when-should-they-be.html
Introductory Tutorials
Comprehensive Tutorials
Traps to look out for
Mason Wheeler talks about a gotcha when using anonymous methods within loops.
http://tech.turbu-rpg.com/256/beware-using-anonymous-methods-in-loops
Allen Bauer (Emb.) further refines his anonymous methods and generics threading example and
Implementation analysis
Detailed analysis of how anonymous methods are implemented by the Delphi compiler.
Barry Kelly (Emb.) wrote back in 2006 on how anonymous methods could be implemented in the Delphi compiler.
http://blog.barrkel.com/2006/08/delphi-native-closures-part-ii.html
http://blog.barrkel.com/2006/08/delphi-closures-anonymous-delegates.html
Advanced Techniques
Barry Kelly (Emb.) has a example of using anonymous methods and generics to write an enumerator.
http://blog.barrkel.com/2008/08/tiburon-fun-with-generics-and-anonymous.html
Barry Kelly (Emb.) discusses storing references to anonymous methods inside method pointers.
http://blog.barrkel.com/2010/01/using-anonymous-methods-in-method.html
Multi-threaded applications
Allen uses anonymous methods in conjunction with generics and the TMonitor record.
http://blogs.embarcadero.com/abauer/2008/09/25/38870