I had a similar issue where logging in would show just the wallpaper for about 40 seconds before showing anything else, but subsequent logins were fast until the next reboot. I also had the same behaviour where logging in to a terminal first would make the graphical login fast, so it was a once-per-boot thing.
I changed a few things in trying to solve it but the probable culprits were either disabling IPv6, or disabling the couchdb service. IPv6 is something I'm not going to be able to use any time in the near future, and couchdb is something I installed a while ago and really doesn't need to be running all the time. In any case, the time from entering my password to having a usable desktop is now a couple of seconds.
If science demanded it I could always go back and narrow down which one caused the slowdown, but I'd try the IPv6 thing first and then see if any optional services are starting (you could try using BootChart to log your startup and spot any nonessential processes that take a long time).