Heat the oil in a large skillet over medium. Add the onion and cook, stirring occasionally, until tender, about 8 minutes. Add the garlic, cumin, and a pinch of red pepper (or more if you like things spicy), and continue cooking, stirring often, until fragrant, about 30 seconds.
Transfer the mixture to a 6-quart slow cooker and stir in the beans and water. Cover and cook on low until the beans are tender, about 6 1/2 hours.
Carefully pour everything from the slow cooker into a large nonstick pot. Season with salt and pepper.
Place the pot on medium heat and use a potato masher to mash the beans until they are as smooth as you would like. Continue cooking, stirring occasionally, until enough liquid has evaporated that the beans reach your desired consistency, usually around 15 minutes.
Remove from the heat and stir in the vinegar. Season with additional salt to taste.