When your user talk page is changed, a box shows up saying "You have new messages (last change)" where "(last change)" links to the diff of the last revision of your user talk page. This should be changed to "(last changes)", linking to a combined diff of all changes you haven't seen yet (URL: index.php?diff=cur&oldid=NNNN). This would require a schema change, adding a revid field to the user_newtalk table. That field would record the revid of the last revision the user has seen.
- Someone edits my talk page, creating revision 12345
- A row is added to the user_newtalk table, with 12333 (the previous revision) as revid
- More edits are made; the user_newtalk table isn't touched
- I view a page and see a banner linking to diff=cur&oldid=12333
- I view my user talk page, causing the row in the user_newtalk page to be deleted