Place the butter beans in a heavy saucepan and cover with cold water. Bring to a boil over high heat, reduce to a simmer and cook, covered (with lid barely open) until the beans are tender, about 1 hour. Drain and cool. Heat the olive oil in a large, heavy skillet over medium heat. Add the onions and garlic and saute, constantly, until soft, about 5 minutes. Add the bay leaf and cardamom and cook for 1 minute. Add the leek rounds and carrot, reduce heat and saute, covered about 5 minutes, stirring occasionally.
Add the wine and tomatoes, bring to a simmer, then add the beans and cook for 5 minutes, uncovered stirring constantly. Add the vinegar, salt and pepper, stir well and remove from heat. Serve hot or refrigerate until chilled.