"Apollo By The Numbers" is a great resource for this, both the complete text and the summary tables document.
The loaded weights of the LM at liftoff generally increased over the course of the program, from 33,278 lbs (15,094 kg) for A11 to 36,262 lbs (16,448 kg) for A17.
||LM Dry Weight
||LM Launch Weight
I'm not sure what added so much dry weight to Apollo 12 (could be an error in the tables -- I've caught errors in ABTN before). After Apollo 13, a fifth battery was added to the descent stage, which added about 130 lbs, but the big step-up in weight was for the final three "J missions", A15 (LM-10), A16 (LM-11), and A17 (LM-12). These missions carried more consumables, in order to support 3-day stays instead of the shorter stays of the early missions, and also carried the Lunar Roving Vehicle.
The LM descent stage was modified for these missions; per Wikipedia:
The descent engine thrust [and more importantly, the fuel efficiency] was increased by the addition of a 10-inch (250 mm) extension to the engine bell, and the descent propellant tanks were enlarged. A waste storage tank was added to the descent stage, with plumbing from the ascent stage. These upgrades allowed stays of up to 75 hours on the Moon.
The dry weight of the J mission LMs was about 1,600 lbs greater than the early LMs.
Regarding Apollo 10:
George Mueller stated that "Snoopy" was an older design and under powered for lunar ascent.
This is not quite right. Snoopy was about 200 pounds overweight, Grumman not having completed their weight-saving program, but the fuel margins were sufficient that the LM would, technically, have been able to land, as explained in this QA. The fuel underload wasn't done to prevent rogue astronauts from landing; it was done so that when the LM staged at high altitude in the Apollo 10 "dress rehearsal", the ascent stage's fuel state would match that of a landing mission which had ascended from the surface.