Step 1In a large bowl, soak the beans in a generous amount of water for at least 1 hour, preferably overnight.
Step 2Drain and rinse the beans, then transfer to a sauce pot. Cover with fresh cold water. Bring to a boil over high heat, then cover and reduce heat to medium-low. Simmer until the beans are very tender and the skin starts to split apart, 40 minutes to an hour, possibly more, depending on how soft the beans are after soaking. Add more water if needed during cooking to keep the beans covered. Drain the beans, reserving about ¼ cup of the cooking water. Set the beans aside to cool completely.
Step 3In the bowl of a food processor or using a meat grinder with the smallest die, pulse or grind the cilantro until finely chopped. If the food processor or meat grinder has trouble grabbing hold of the cilantro, add some walnuts to the machine. Transfer to a bowl. Add the rest of the walnuts with the garlic to the work bowl or meat grinder and pulse or grind until finely ground. Add to the cilantro. Add the beans to the work bowl or meat grinder and pulse or grind until almost smooth and combine with the cilantro, walnuts and garlic. Add the vinegar, coriander, fenugreek, salt, pepper and chile powder. Mix with your hands until well combined to form the pkhali. The mixture should be very sticky and hold together when squeezed. If it feels dry, add the reserved bean cooking water 1 tablespoon at a time. Cover and chill for at least 1 hour or overnight.
Step 4To serve, divide the pkhali between 2 small, round dessert plates. Shape the pkhali into a disc and smooth the sides and top with a knife. Using a fork, make a criss-cross pattern on the top and garnish with pomegranate seeds or fresh herbs.