La propiedad Lines del Memo es un TStrings, compatible con un TStringList, este último tiene la propiedad Duplicates que se puede establecer en dupIgnore, de esta forma al repetir una cadena... obviamente la ignora y no la añade.
Código Delphi
[-]
var X :TStringList;
begin
X := Tstringlist.create;
x.sorted := true; x.Duplilcates := dupIgnore;
X.Add('uno');
X.Add('uno'); Memo1.Lines.Assign(X); Memo1.Lines.Add(X); X.Free;
Saludos