Sort beans to remove any rocks or twigs then rinse in a fine mesh strainer or colander under cool running water.
Add the beans, 2 cups water, broth, and 2 teaspoons of salt to a 6-quart Instant Pot. Ensure the pressure release valve is sealed.
Using the manual function, set the Instant Pot to high pressure and the timer to 30 minutes. It will take about 10 minutes for the Instant Pot to fully pressurize before the timer starts counting down.
Once the time is up, allow a 20-minute natural pressure release before releasing the pressure valve and opening the lid.
Strain the beans using a fine mesh strainer over a large bowl and reserve the liquid.
Turn the Instant Pot to the saute function (normal) and add the oil and diced onion. Saute for 3-4 minutes, or until the onion becomes translucent. Add the garlic and continue sauteing for an additional 30 seconds or until fragrant.
Mix in the cumin, chili powder, salt, and pepper. Stir and saute for a minute.
Pour in the beans and ½ cup of reserved liquid and mix until everything is well combined. Mash the beans with a potato masher until there are very few whole beans remaining. You can also blend with an immersion blender if you want them super creamy.
Cook for 2-3 minutes and then add additional liquid until your desired consistency is reached.
Serve immediately with a sprinkle of chopped cilantro and enjoy!