How can I perform a full-text CONTAINS call across a list of phrases?
Try this:

go
create function dbo.fn_GetCountForPhrase (@phrase varchar(500))
    returns  int
as
begin
    declare @count int
    declare @localphrase varchar(8000)
    set @localphrase='"' + @phrase + '"'
    SELECT @count=COUNT(*) FROM table  a WHERE CONTAINS(table.description,   @localphrase)
    return @count
end
go
SELECT  
    phrase,  
    dbo.fn_GetCountForPhrase(phrase) 
FROM phrases