Rinse and drain lentils, discarding any foreign matter.
Melt butter or margarine in a large saucepan. Add onion and sauté until golden. Stir in curry powder, onion salt, turmeric, and cayenne pepper. Sauté briefly. Add lentils and 4½ cups of the water.
Bring to a boil, reduce heat, and simmer uncovered over low heat for 15 minutes.
Add tomato and garlic. Cover saucepan and continue cooking over low heat for 45 minutes, adding about 3 more cups water, as needed, until dal is the consistency of a thick, smooth soup.
Remove garlic cloves and stir in coriander.
Serve in small bowls.