Sync completely two ubuntu machines
Solution 1:
The Ubuntu Software Center has a package sync feature. Click File -> Sync between computers.
For two-way file sync without Ubuntu One, try Unison. Here are some instructions.
Solution 2:
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>
apt-get dselect-upgrade
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.
Solution 3:
Although your idea sounds nice, you probably do not want to synchronize everything ,various lock files and .xauthority for example.
You are better off identifying what files or data you want to synchronize.
You can then use any number of tools from rsync to unison.
You can use rsync to sycn your data. Both tools have a graphical front end
See:
Ubuntu wiki Unison
Ubuntu wiki rsync