Place pinto beans into a large pot and pour in enough water to cover by 2 to 3 inches. Let beans soak overnight.
Drain beans, return to pot, and pour in fresh water to cover; add tomatoes, bacon, onion, chili powder, cumin, and garlic powder. Bring to a boil, reduce heat to low, and simmer for 3 hours. Check the beans occasionally and add more water if needed.
Stir cilantro and salt into beans simmer until beans are soft, about 1 more hour.