There can be many causes, but a common one is a "lazy" hard drive - taking too long to come up to speed. The BIOS setting for "quick power on test" can be disabled, to allow it more before it's addressed - and in some BIOS there's a "Hard Disk delay" setting, to also allow it more time. This can also be a sign of a disk drive starting to fail.
Lazy hard drives can sometimes be found out by using SMART monitoring - set it in the BIOS for your drive. Amongst other things it measures spin-up time. Download ActiveSmart to get a trial of a good SMART monitoring program. click here
Other causes can be RAM - try taking it out and refitting, it can clean poor contacts a little - and a "lazy" power supply, and motherboard problems.
The only way to isolate the problem is to try one thing at a time to see which cires it - or you could opt to live with it.