One of the approaches I've used in the past that works pretty well, especially with multiple teams:
Set up a flip chart for each team and put a dotted line about 1/3 of the way up (so the top section is 2/3 of the chart). Explain definition of done (I also provide examples like "X% test coverage with all tests passing" and "merged to trunk") and ask them to brainstorm what they want on their DoD with sticky notes. The top section is for the things that they can do for each backlog item every sprint. The items in this section will be the team's Definition of Done.
The bottom section is for items that they would like to do but can't commit to each sprint. I often see things like full regression test runs and deploy to production down there. This is important because it gets these limitations out in the open. It creates opportunities for the team and organization to improve in the future and calls out the technical debt and risk that is building with each backlog item that doesn't do those things.
Finally, if you have multiple teams, have them walk around and look at the other teams' DoDs to see if they came up with something that they like and want to use.
You can do the same thing for Definition of Ready if you're using one. (In my experience, you don't need to make two sections for the definition of ready chart)
And of course, this is a living artifact, so this is just to get you started.