As Michael K pointed out the packages you can keep in sync by doing:
dpkg --get-selections > <file>
Copy the file from source machine to destination using your favorite method then
dpkg --set-selections < <file>
This way all the packages that were installed on one machine will be installed on the other further the packages that were removed on the source machine will be removed from the destination, so doing that is extraordinarily dangerous especially when syncing desktop to laptop since laptop may require certain drivers that desktop in general will not.
In my experience deploying standardized systems I can tell you that once the base build is put in place the synchronization of the packages is a very very rare thing predicated as Michael pointed out on hardware being identical and most importantly purpose being identical as well.