Melt the butter in a large Dutch oven coated with cooking spray over medium heat.
Add the onions, salt, and pepper; cover and cook over low heat 30 minutes or until onions are browned, stirring occasionally.
Increase heat to medium-high; stir in wine and tomato paste. Cook until wine almost evaporates (about 5 minutes).
Add water, tomatoes, rosemary, thyme, parsley, and bay leaves; bring to a boil. Cover, reduce heat, and simmer 20 minutes. Stir in soy sauce; discard parsley and bay leaves.
Preheat broiler.
Ladle 1 1/3 cups soup into 6 ovenproof bowls.
Place bowls on a baking sheet. Top each serving with 1 bread slice, and sprinkle each bread slice with 2 tablespoons Gruyre and about 1 tablespoon Asiago. Broil 3 minutes or until cheese melts.