Ten years ago the Abba stage musical was brought to the screen and became a monster hit, almost despite itself. The songs were great, Meryl Streep was magnificent, but the writing, directing and much of the singing was so cringingly poor that the experience felt more like SOS than Mamma Mia.

To be fair, the Swedish supergroup’s back catalogue is so infectiously feelgood that all else could be, and clearly was, forgiven. And so, as the filmmakers coin a line from the title song: “Here we go again.”

It’s actually worth remembering the line that follows: “My, my, how can I resist you?” On this occasion, I would have to agree.

With a new writer/director at the helm, and the original cast members joined by newcomers with far better voices, this is a more complete package than its predecessor, with one or two touches of genuine inspiration.

Set on the fictional Greek island of Kalokairi, the earlier film introduced Donna Sheridan (Streep), her daughter Sophie (Amanda Seyfried) and the question of which of Donna’s three former suitors was the girl’s father: Sam (Pierce Brosnan), Harry (Colin Firth) or Bill (Stellan Skarsgård).

Donna simply didn’t know, and the film ended with Sophie and the chaps accepting a shared paternity. What the original never charted was how the younger Donna got to dally with the three of them, simultaneously, in the first place. This is where the sequel takes us.

In the present, Sophie is about to relaunch her mother’s taverna as a luxury hotel. But as the grand opening approaches, she has two concerns – an impending storm, and the gusts of ill will between her and her absent boyfriend (Dominic Cooper).

Back in 1979, the spirited Donna (Lily James) graduates from Oxford with a desire to visit the magical Greek island she’s heard so much about. On the journey she meets shy Harry and dashing Bill; on the island, she encounters the reticent Sam. Three very different liaisons ensue.

With Streep taking a reduced role, it’s James who now shoulders the lion’s share of both the plot and the songs. She’s a trifle over-energetic, but it’s in a good cause – presaging the free-spiritedness of Streep’s character. And the Downton Abbey and Cinderella star certainly can sing.

Highlights include a zany Waterloo featuring James and the amusing Hugh Skinner as young Harry; James soulfully solo on The Name of the Game and Andante, Andante and Streep and Seyfried breaking hearts with My Love, My Life.

Donna’s lifelong friends feature strongly in both storylines, the fellow newcomers Alexa Davis and Jessica Keenan Wynn joining James for a notably feisty Mamma Mia, Julie Walters and Christine Baranski offering a poignant I’ve Been Waiting for You with Seyfried.

And then there’s this film’s trump card, Cher, who’s every bit a pop icon as Abba – with the spandex wardrobe to match. As Sophie’s grandmother, she steals the show with a delicious duet of Fernando with Andy Garcia’s hotel manager.

Writer/director Ol Parker doesn’t entirely escape the original’s mistakes – the manic pacing, a cheesy amateurishness in the choreography and the inability to simply cut an actor who can’t sing (Cooper is the worst culprit here).

On the plus side, his script is far funnier (comedy giant Richard Curtis has a "story" credit, and his fingerprints are all over this) and warmer, with the resonances between Donna and Sophie, mother and daughter very movingly played out.

Essentially, the feelgood prevails, all the way to Cher leading the entire cast in a spectacular rendition of Supertrouper that will make all but the stoniest hearts smile away the real world’s problems.