In a large skillet over medium heat, break up sausage and sauté with olive oil and onions until golden brown, about 10-12 minutes. Remove from heat and set aside. Meanwhile, if using fresh bread, lightly toast and set aside.
In a medium bowl, whisk rosemary, cream, half-and-half, eggs, salt and pepper and set aside.
Lay half of bread in buttered baking dish, sprinkle with half of sausage mixture, half of tomato slices and half of cheese. Repeat layering with remaining bread, sausage, tomato and cheese. Slowly pour egg mixture over top. Cover and refrigerate 30 minutes or overnight.
Preheat oven to 350°F Uncover and place baking dish on a baking sheet to catch overflow. Bake 40 minutes, or until golden brown . Allow to sit 10 minutes before serving.