This is a sign a service or startup program is broken.
Open up a Run dialog and type in msconfig then hit Enter. Under the Startup tab, click Disable all. Now click OK and reboot the computer. Does the login time improve?
If so, you need to open up msconfig again and then Enable some of those startup items a few at a time [2 or 3] and see if your boot time gets delayed again. Basically it is trial and error to see which program at boot is holding up the show. Once you have found it you can delete that startup entry or reinstall the software.
If your boot up time is still slow after disabling all startup items, it could be a service. Open the Services tab in msconfig. Now put a check in Hide all Microsoft services.
This makes sure you don't disable anything important. Now Disable allagain and click Ok and reboot. Same deal as before, if boot improves Enable services a few at a time to narrow down the culprit.