You should use varchar(max). The text data type "will be removed in a future version of Microsoft SQL Server."
Related on SO Using varchar(MAX) vs TEXT on SQL ServerUsing varchar(MAX) vs TEXT on SQL Server
The basic difference is that a TEXT type will always store the data in a blob whereas the VARCHAR(MAX) type will attempt to store the data directly in the row unless it exceeds the 8k limitation and at that point it stores it in a blob.