In a large skillet, heat 2 tbsp. oil over medium heat. Add the onion and cook, stirring occasionally, until beginning to brown, 10 to 12 minutes. Add the chiles, garlic, ginger and garam masala and cook for 30 seconds. Add the tomatoes, half of the cilantro and 1/2 tsp. salt and simmer gently until saucy, about 5 minutes. Stir in the chickpeas and simmer for 10 minutes. Stir in the lemon juice. Cover and set aside to keep warm.
In a large bowl, mix the flour and 1 tsp. salt. In a small skillet, heat the remaining 2 tbsp. oil over high heat until very hot, about 1 minute. Drizzle it over the flour mixture. Pour in 1/2 cup water in a slow stream, mixing with a wooden spoon. Add up to 2 tbsp. more water, 1 tbsp. at a time, until the dough holds together when pinched. Working by hand or using a standing mixer fitted with a dough hook, knead the dough until smooth and firm, about 10 minutes by hand or 5 minutes by mixer. Cover and let rest for 10 minutes.
Divide the dough evenly into 8 balls. Roll each ball into a 6-inch round (about 1/16 inch thick). Cover with a damp cloth or plastic wrap.
Meanwhile, wipe the inside of a medium nonstick skillet with an oiled paper towel and heat over medium heat until hot but not smoking. Working with 1 dough round at a time, place the dough into the pan and cook until brown in spots, gently pressing the air bubbles with the back of a spatula to expel the air, about 30 seconds. Flip and continue pressing for about 15 seconds. Transfer to a plate and brush with some of the butter. Repeat with the remaining rounds and butter.
To serve, spoon the chana masala into individual bowls. Top with the remaining cilantro and the lemon wedges. Serve with the roti (bread).