In a 3 to 4-quart saucepan, combine the olive oil, onion, garlic, celery, parsley, and marjoram; place over medium heat and saute, stirring frequently, until the celery and onion are beginning to color, about 10 minutes.
Add in the tomatoes and their juices, breaking up the tomatoes with a wooden spoon or a potato masher; simmer briskly for 10 minutes.
Meanwhile, cut the top of the broccoli into small florets, then peel the stems and cut them into 1/2-inch pieces; you should have about 5 cups.
Add the broccoli, broth, salt (the amount will depend on the saltiness of the liquid you use), and pepper.
Cover and bring to a boil; adjust heat and simmer briskly, partially covered, for 10 minutes, stirring once or twice.
Stir in the shells and continue to simmer until shells are tender, 8-10 minutes, stirring a few times.
Taste and correct seasoning , if necessary.
Let rest 10 minutes, then serve in flat soup bowls and pass the grated cheese.