Otra forma sería así:
Código Delphi
[-]
program Project1;
uses
Windows, Forms, Unit1 in 'Unit1.pas' ;
{$R *.res}
var
hMutex: THandle;
begin
hMutex:= OpenMutex(MUTEX_ALL_ACCESS, false, pchar('APP'));
If hMutex = 0 then
begin
CreateMutex(nil, true, pchar('APP'));
WinExec(pchar(paramstr(0)), SW_SHOWNORMAL);
ExitProcess(0);
end;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
EDITO: Luego en el evento OnClose del Form principal pondríamos algo así: CloseHandle(hMutex);
Saludos.