In a large nonstick pan or pot, brown the beef over medium-high heat. Drain into a colander in the sink to remove excess fat. Add the browned beef back to the pan.
Add the onions, pepperoni and garlic; cook for about 3-4 minutes until the onions are soft. Stir in tomato paste and sauté for one minute.
Deglaze the pan with wine and vinegar, simmer until almost evaporated. Stir in tomatoes and broth. Bring up to a boil, lower heat and simmer for 20 minutes.
Add the beans, Italian seasoning, red pepper flakes, salt and pepper to taste. Cook for about 5 minutes more until heated through.
Garnish each serving with grated Parmesan cheese, if desired.