1) Preheat oven to 200°C and preheat grill.
2) Melt butter and oil together in a large stock pot or casserole dish over medium-high heat. Add onions and sugar and cook for ten minutes, until onions are tender and golden brown. Add thyme, bay leaves, salt, and black pepper and stir to coat. Cook for one minute, until fragrant. Add port and simmer until liquid is absorbed.
3) Add broth and parmesan rind and bring mixture to a boil. Reduce heat to low, partially cover and simmer 20 minutes.
4) Remove bay leaves and parmesan rind and ladle soup into oven-proof bowls. Place bowls on a baking tray. Place reserved bread rounds or a sourdough round into each bowl and top bread with gruyere cheese.
5) Grill for two to three minutes, until cheese is golden and bubbly.
6) Serve immediately.