Slow bootup times have always plagued many Windows computers, and it can often be tricky to figure out what causes it. Often times, it's as simple as a hard drive going bad. When hard drives start to wear out, the operating system can have difficulty reading all of the sectors on it. If it happens to come across bad sectors during the bootup process, it will have to repeatedly attempt to read that sector until it finally works. This can extend the time it takes to boot the PC up by several minutes.
Another reason your PC may be taking so long to boot is in software programs that are trying to run during startup. To uncover the mystery of what program is the culprit, you can enable boot logging in Windows. This will save a bootlog.txt or ntbtlog.txt file on the root level of your hard drive. This is a plain text file that will tell you what's going on during startup.
To enable boot logging, press the Windows key + R, type "msconfig," then press Enter. Click on the Boot tab, and then click the check next to "Boot Log." Click OK, and then the next time you boot up, it will make the boot log file.
Another option is to get the Windows Assessment Toolkit. This will give you a much more thorough explanation of the entire bootup process. It will detail how long each driver takes to load, and much more. Check out this post at blogs.technet.microsoft.com to find out more.