The day before serving, place the beans in a large pot and add water to extend 3 inches above the beans. Soak overnight. (Or if you forget to soak the beans the night before, place them in a large pot and cover with water 3 inches above the beans. Bring to a boil and immediately turn off the heat. Cover and let sit for about 1 1/2 hours.) Pour the beans into a colander and drain off the soaking liquid.
In the same pot, heat the olive oil over medium heat. Add the onions and cook until translucent, about 10 minutes. Add the cumin and stir to coat the onions. Let cook 2 minutes, stirring constantly so the cumin will not burn. Add the beans and cover with the stock. Bring to a boil and skim off the foam from the beans. Partially cover and reduce the heat to a simmer. Add salt and pepper to taste. Simmer gently until the beans are cooked through but not mushy, about 1 hour. For a thicker consistency, remove the cover and boil some of the liquid away.
Using a slotted spoon, scoop up the beans and place them in a shallow bowl. Sprinkle with the cheese, and then garnish with the tomato and cilantro. Serve immediately.