Start with Event viewer info on boot times:
Control Panel > Administrative Tools > Applications and Services Logs > Microsoft > Windows > Diagnostics-Performance > Operational.
Event ID 100.
View the Friendly or XML view. Google some of those fields and you'll find a webpage that probably shows how to diagnose at least what CATEGORY is killing your boot time.
Log Name: Microsoft-Windows-Diagnostics-Performance/Operational
Source: Microsoft-Windows-Diagnostics-Performance
Date: 2/4/2012 2:19:23 PM
Event ID: 100
Task Category: Boot Performance Monitoring
Level: Error
Keywords: Event Log
User: LOCAL SERVICE
Computer: Jim-GLH
Description:
Windows has started up:
Boot Duration : 69176ms
IsDegradation : false
Incident Time (UTC) : 2012-02-04T19:17:26.609200200Z
Event Xml:
<Event xmlns="
http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-Diagnostics-Performance" Guid="{CFC18EC0-96B1-4EBA-961B-622CAEE05B0A}" />
<EventID>100</EventID>
<Version>2</Version>
<Level>2</Level>
<Task>4002</Task>
<Opcode>34</Opcode>
<Keywords>0x8000000000010000</Keywords>
<TimeCreated SystemTime="2012-02-04T19:19:23.899887300Z" />
<EventRecordID>2203</EventRecordID>
<Correlation ActivityID="{00000000-8B28-0000-759C-6EA171E3CC01}" />
<Execution ProcessID="1644" ThreadID="2460" />
<Channel>Microsoft-Windows-Diagnostics-Performance/Operational</Channel>
<Computer>Jim-GLH</Computer>
<Security UserID="S-1-5-19" />
</System>
<EventData>
<Data Name="BootTsVersion">2</Data>
<Data Name="BootStartTime">2012-02-04T19:17:26.609200200Z</Data>
<Data Name="BootEndTime">2012-02-04T19:19:21.247882700Z</Data>
<Data Name="SystemBootInstance">567</Data>
<Data Name="UserBootInstance">565</Data>
<Data Name="BootTime">69176</Data>
<Data Name="MainPathBootTime">21576</Data>
<Data Name="BootKernelInitTime">21</Data>
<Data Name="BootDriverInitTime">1310</Data>
<Data Name="BootDevicesInitTime">4993</Data>
<Data Name="BootPrefetchInitTime">43069</Data>
<Data Name="BootPrefetchBytes">342867968</Data>
<Data Name="BootAutoChkTime">0</Data>
<Data Name="BootSmssInitTime">4212</Data>
<Data Name="BootCriticalServicesInitTime">1040</Data>
<Data Name="BootUserProfileProcessingTime">2424</Data>
<Data Name="BootMachineProfileProcessingTime">0</Data>
<Data Name="BootExplorerInitTime">6019</Data>
<Data Name="BootNumStartupApps">8</Data>
<Data Name="BootPostBootTime">47600</Data>
<Data Name="BootIsRebootAfterInstall">false</Data>
<Data Name="BootRootCauseStepImprovementBits">0</Data>
<Data Name="BootRootCauseGradualImprovementBits">0</Data>
<Data Name="BootRootCauseStepDegradationBits">2097152</Data>
<Data Name="BootRootCauseGradualDegradationBits">0</Data>
<Data Name="BootIsDegradation">false</Data>
<Data Name="BootIsStepDegradation">false</Data>
<Data Name="BootIsGradualDegradation">false</Data>
<Data Name="BootImprovementDelta">0</Data>
<Data Name="BootDegradationDelta">0</Data>
<Data Name="BootIsRootCauseIdentified">true</Data>
<Data Name="OSLoaderDuration">1786</Data>
<Data Name="BootPNPInitStartTimeMS">21</Data>
<Data Name="BootPNPInitDuration">5012</Data>
<Data Name="OtherKernelInitDuration">1035</Data>
<Data Name="SystemPNPInitStartTimeMS">5956</Data>
<Data Name="SystemPNPInitDuration">1291</Data>
<Data Name="SessionInitStartTimeMS">7338</Data>
<Data Name="Session0InitDuration">1542</Data>
<Data Name="Session1InitDuration">302</Data>
<Data Name="SessionInitOtherDuration">2367</Data>
<Data Name="WinLogonStartTimeMS">11550</Data>
<Data Name="OtherLogonInitActivityDuration">1582</Data>
<Data Name="UserLogonWaitDuration">1622</Data>
</EventData>
</Event>