First of all, being a vegetarian in Italy is not a problem. You'll always be able to find plenty to eat.
I'm not sure if your son eats fish? If so, then La Gensola is great.
The area just over the Tiber, around Campo de' Fiori and the Ghetto, has lots of wonderful places.
In the Ghetto: Da Gigetto for wonderful fried artichokes. There is also Piperno and Pompiere, both more high end, and both offering typical Roman and Jewish dishes.
Around Campo de' Fiori you might want to go to Dittirambo. They have more purely vegetable dishes - including delicious eggplant 'meat' balls - which are a specialty.
I wouldn't exactly say Campo and the Ghetto have lots of wonderful places. on the contrary. Piperno is passable for some dishes (artichokes and generally fried things among them). ditirambo is quite disappointing.
alternatives: Roscioli has good cacio e pepe. Taverna Trilussa has a good vegetarian antipasto thing going on, but is a bit pricey overall (rosicoli is actually cheaper when you get down to it). there are good melted cheese dishes at Lucifero on via del pellegrino. there is cheese fondue at the sister restaurant on via dei cappellari. want more cheese? how bout beppe e i suoi formaggi? in the ghetto ba'ghetto milky (dairy kosher) is decent, but pricey. the ravioli with liquefied 60-month aged parmigiano at glass are outstanding. youll find simple salads at wine bars (il bacocco in trastevere is cute).
the best vegetarian dish in rome is the mixed vegetarian plate at mesob (rome's best ethiopian resturant) in pigneto.