Heat oil (or oil and butter) over medium. Once hot, add onion and cumin seeds and cook, stirring occasionally, until onion browned in spots. Add garlic and ginger, cook for 1 minute more, then the rest of the spices and tomato and cook for 3 minutes more, scraping up any stuck bits. Add water and salt, then lentils. Bring to simmer, then reduce to low and cover and cook until lentils are tender, between 35 and 45 minutes, stirring occasionally. For a looser dal, you can add more water. Adjust spices and seasonings to taste.