To have your system boot in a short time, you also need to enable only useful services.
Here comes the problem: which are the useful services?
The simple answer is: useful services are the ones that do a job you're interested in. As you can note, this is not a real answer.
Windows, as other operating systems, comes with a series of services that are configured to start at every boot. Any of these does something and also there are dependencies between them (you have a dependency when starting service X requires service Y to be started also).
The initial mix of service is some kind of one size fits all, so let's discuss about the way to personalize it.
To have a look at system services type services.msc at your command prompt. You see a list and eventually a description of the services installed on your machine.
The status column tells you the current state of the service. You can have Manually startup services shown as running (brought to life by others), and Automatic services that are not running (since they do their work and then stop).
The dependencies tab shows the explicit dependencies between services (look at "computer browser"): note that not all of them must be declared here. One application may need a service and start it when it is the right time. Please note that system drivers are also "services".
So the general way to dig into service startup optimization is disabling unneeded ones and set to manual the ones that are used "on demand".
You must read the documentation about services, comprehend their purpose and change the startup type.
Unfortunately, not all the interactions between services are described in the official documentation, so you need to google around to find other sources.
Start by changing your target service to manual and restart the PC. If the service does not come up, no other service depend on it. Now use your system normally, and check if you lack functionalities or, very important, if the System and Application log display events complaining about the service. If it all seems working, set the service to disabled and step to the next one.
There are some services that have a visible impact when stopped: try to stop the Themes service and you’ll go back to Windows 2000 like interface instead of the colored one of XP.
This is not so easy although. Suppose you say "I don’t need to run scheduled tasks, so I’m going to stop the task scheduler service".
Finally we can look into boot time drivers. Using LoadOrder or boot time logging, you can see which drivers start. Why you should look here and find something wrong? Because different programs that you install put drivers here and don’t remove them on uninstall. Once you find an old driver here, set its Start value to 4 and see if your system boots correctly (You can find Start value in HKLM\System\CurrentControlSet\Services\MyService key).
Since also 3rd party (non Microsoft) applications rely on their own services, let me point out 2 examples:
If you want to experiment, you can try to stop all the services running: you’ll find that some don’t stop but the most do. A little script can be used to strip down your system on demand, freeing up memory and reducing the attack surface of your system.
Finally remember that you must move having a clear direction in your mind: if you need to maximize security (hardening) or if you need to optimize boot or memory consumption you’ll probably make different choices.
So I hope you learned that there is no magic mix of services, everyone has its own and obtaining it by experimenting could be a challenging and funny experience.