Using SELECT DISTINCT will work for you, but the best solution here is to redesign the database.
Duplicate entries may result in inconsistent data. For example, imagine that you have two different statuses in different records with the same TaskID. Which one would be right?
A better design would include something like a task table, contact tables, and assignment tables, as shown below (fields in brackets are PK):
Tasks: [TaskID], TaskPriority, Subject, Status, DueDate, Completed, StartDate, Owner, CategoryID, ContactID, ...
Contact: [ID], first name, last name, address, phone number, ...
Destination: [TaskID, ContactID]
You can then get Tasks with a simple SELECT from the Tasks tables. And whenever you need to know the contacts assigned to tasks, you must do this with a JOIN clause like this
SELECT T.*, C.* FROM TaskID as T INNER JOIN Assignment as A ON T.TaskID = A.TaskID INNER JOIN Contac as C ON A.ContactID = C.ID
Or similarly. You can filter, sort or group results using all the features of SQL queries.