Once you've set up GNU Emacs on Windows (see CategoryWThirtyTwo) you will probably want to add spell checking ability.  &nbsp;[http://aspell.net/win32/ aspell] is not an especially good choice; but alternatives at this point are unclear.  True, it integrates seamlessly with Emacs; but the last version of it for Windows was compiled in 2002 and is hopelessly out of date.

[new] Although it might be out of date it seems to work well. I installed Aspell according to the instructions below, yesterday (today is 2015-09-23), and it works fine, in a quite recent Emacs 25. -- MaDa

[new] This does not seem to be working with Windows 10 and emacs 26.1. I get this error:
Error enabling Flyspell mode:
(C:/path-to-aspell/aspell.exe release 0.60 or greater is required)

[new] Yes, version requirements were increased for Emacs 26.1 (2016-12-13 "Remove support for aspell < 0.60 (from 2004)" https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=9e6618becaa15b).  Perhaps Hunspell from EZWinports would work better (as suggested on InteractiveSpell)?

[new] With Mingw-w64 (https://www.mingw-w64.org/) it is possible to have the latest Aspell version working with Emacs 27.1. -- luis
You'll have to configure it:

    (setq ispell-program-name "<path-to-msys64-dir>/usr/bin/aspell.exe")

== Setup for 64-bit Windows 7 ==

First you need to download and install both the aspell executable and at least one dictionary from http://aspell.net/win32/.  &nbsp;These will be two separate downloads, be sure to get both.  &nbsp;Under the 64-bit version of Windows 7 the default install directory for both of them is "C:\Program Files (x86)\Aspell\dict\".  &nbsp;"C:\Program Files (x86)" is used for 32-bit executables, while "C:\Program Files" is for the 64-bit ones.

Next we need to make a series of changes in your InitFile.  &nbsp;You need to add the path of the aspell exec to your emacs exec-path.  &nbsp;I tried the path string without the C: at the beginning but it did not work consistently.

    (add-to-list 'exec-path "C:/Program Files (x86)/Aspell/bin/")

We need tell emacs to use aspell, and where your custom dictionary is.

    (setq ispell-program-name "aspell")
    (setq ispell-personal-dictionary "C:/path/to/your/.ispell")

Then, we need to turn it on.

    (require 'ispell)

Lastly you need some way of invoking it.  &nbsp;"M-$" is the default method, which will check the word currently under the point.  &nbsp;If a region is active "M-$ will check all words within the region.  &nbsp;However, I like to customize all the keybindings.  &nbsp;So, here's an example to use it with FlySpell:

    (global-set-key (kbd "<f8>") 'ispell-word)
    (global-set-key (kbd "C-<f8>") 'flyspell-mode)

----
CategorySpelling CategoryWThirtyTwo
