Soak beans in water for at least 4 hours or overnight.
Drain and rinse beans, then add 6 cups of fresh water and cook until tender (about 1½ hours on stovetop or 40 minutes in Instant Pot).
In a skillet, melt lard over medium heat.
Add diced onions (and bell pepper if using) and cook until translucent.
Stir in grated garlic, cumin, and chili flakes; cook until fragrant.
Add cooked beans with some of their liquid, reserving the rest.
Simmer and mash beans to your preferred texture, adding more liquid as needed.
Season with salt, pepper, and garlic powder; continue cooking until thickened.
Fold and stir until creamy and smooth.
Serve hot, garnished with chopped cilantro if desired.