I am surprised at some of the advice on this thread. It seems to accept that PCs have a lifespan of about 3 years. This is not the case, but it is in the industry's interest (and especially Microsoft's) to get people buying a new machine every few years.
Your machine may have a hardware problem, or a software problem, or (probably) both, since a hardware glitch can often cause software corruption. The advice to clean, reseat all connectors and replace internal components is good - I am running a variety of machines up to 20 years old here (including some running 24/7), and I find that the fans getting clogged is the most common problem. My major failure has been power supplies going due to dead fans and consequent overheating. An external drive to back-up critical data - your photos, for instance, is a very good idea and should be used with all systems.
If you have a reliable on-boot hardware fault you can often isolate it by taking the machine apart and rebooting just the motherboard, then adding components until the system starts to fail. A hardware problem must be identified and corrected before you can proceed further. But you need to run with a simple operating system, preferably booting from a CD, to do all this checking. I use Knoppix, which is a Linux optimised for diagnostics.
If your hardware is OK you can proceed to sorting out the software. Microsoft operating systems have a poor architectural design, and get regularly get themselves screwed internally. I find that, for a Microsoft system in normal use, it is advisable to rebuild the system from scratch about once every year or so. Otherwise the registry and file system get so out of line that regular crashes can be expected. You can get registry cleaners and de-fragmenters, but they do not solve the whole problem. It is interesting to note that Linux does not have de-fragmenters or registry cleaners - it does not need them.
If rebuilt, a Microsoft system should go back to working fast. Eventually, it will get out of date, because commercial companies are always developing new software which is kept intentionally incompatible with the old software, thus forcing you to buy new programs. For instance, drivers for new hardware will not be written for old Windows software, even though the old machines would be powerful enough to run it. When Vista came out, the new DirectX v10 graphics drivers (required to give the top graphics in games) were only written for Vista and not XP. XP systems could run DirectX v10, but they were not allowed to. You will now find a load of unofficial hacks on the net which let you have DirectX v10 effects with XP running DirectX v9, so there are obviously no technical barriers to doing it.
The obvious answer here is to use Open Source. Here all the code is made available for anyone who wants it, and development is additive, and not forced. This is also the answer for people who want to archive old data - if it is kept in an Open format, this will be published, well understood, and there will always be readers for it. There will be no commercial pressure to drop one word processor in favour of a new one which offers no extra features. Plus, you won't have all these complicated licensing problems, because all Open Source software is free. But it does mean using Linux, which Microsoft hates, and which has been accused (in the US) of being anti-capitalist because it is all free....