As usually the answer is it depends.
To show the list I'd probably use the ContentByQueryWebPart, but that also depends on what you need.
If you want the list(s) to show up on ALL pages in the same location (and you have an easy way of putting them in the right place using ContentPlaceHolders or directly) then adding it to the masterpage is the solution.
If you want them on all/most content pages then putting the web parts into the page layouts may be the best solution. But this may only affect new pages.
Adding the webparts to pages using code may also be a good solution.
And finally configuring the web parts to look right, then exporting them and adding them to the web part gallery will be a great solution for making it easy to add them where you want them on a lot of pages.