Have a peek through the logs for the most offensive date, see if you can spot anything of interest. (eventvwr and make use of the filtering functions)
You could try MEMtest to check your RAM, msconfig (or Sysinternals Autoruns for Windows ) for startup items. If you've got time on your hands and want to get your hands dirty with nitty-gritty, boot logging with Sysinternals Process Monitor is fun for all the family.
Also try booting in to safe mode a couple of times (not one after each other, but say a few hours/days later), see if it boots up at a reasonable pace then. If it isn't booting into safe mode quickly then you've got some deeper problems.
When was the last time you did a defrag ? When was the last time you ran disk cleanup ?
Is error checking enabled (right click C:, select tools tab, select error checking, select "automatically fix file system errors" .... okokok then reboot).
Is it definitley a boot and not user profile issue ? If you've got auto-login turned on, turn it off and try booting up ... if it boots up quickly, then you've got a corrupted user profile to deal with.
Finally, given that XP is going EOL soon, maybe its time to bite the bullet, backup your important files, erase your drive and install a newer version of windows.