Place the lentils in a pot and cover with a couple inches of water. Bring to a boil over high heat and boil until tender (about ten minutes). Drain the lentils in a colander.
While the lentils are boiling, mince the garlic and peel and grate the ginger (use a small cheese grater). Return the drained lentils to the pot (medium heat) and add the butter, ginger, garlic, cayenne, cumin, salt and pepper.
Add the can of tomatoes and one cup of water. Stir it all together, bring it to a simmer then reduce the heat to low. Put a lid on the pot and let it simmer for half an hour. The mixture should be soft and thick after a half hour. If it is not, continue to simmer, adding more water if it dries out. You want the end product to be thick, not watery.
Stir in the evaporated milk or cream and garnish with fresh, chopped cilantro. Serve over rice or with naan bread for dipping!