Put the water and beans in a large Dutch oven or a large pot and soak overnight. After soaking, you're ready for cooking.
Rinse the beans and add fresh water. Add salt, pepper, and chili powder and bring to a boil uncovered. Reduce the heat to low and add chopped onions, tomatoes, bacon fat, and garlic. The beans need to cook very slowly for at least 8 hours with the cover on. You may need to add a little water at different times and you should stir once in a while.