The purpose of a demo is to present and review the work of a team or teams. After an iteration of work the demo, usually, naturally ends the period and the teams can show whats been done. Often agile teams try to deliver working software after a fixes period av time, and that work is what they present for the audience.
Participate at the demonstration is of course the whole team, product owner/s and other teams. Other stakeholders are more than welcome to participate, like management, customer and other clients.
The demo should be planned but not taken to seriously, so it takes to much time to carry through. Planning for the demo shouldn’t take more than 1-2 hours.
Exciting and entertaining is what a demo should be, to often is time consuming and boring. Try to see it as a way for the team to sell their product and work internal and external. So practice on giving presentations, don´t use power points, talk to the audience and not to the screen, present the purpose of every task being demonstrated and show working software.
You can also make a small show, or act to make it more interesting.
One way to make demos easier is to plan it from the beginning. How can we demonstrate this feature?, is a great first question to ask as a team when the iterations starts. If there are many feature to demonstrate? don´t show everything, instead pick out the most important and rest can be shown on a slide after.
Ask for questions from the audience because this is a perfect time to get feedback and have time to correct eventual mistakes.
Demos is a great way to round off an iteration, show the organizations what been done and get feedback for next iteration.