A Windows Domain is centrally controlled by one or more Windows Server (NT/2000/2003) domain controllers using Active Directory. All users will have accounts in the Windows Domain in Active Directory, as setup by the Domain Administrator. Instead of logging into the local machine, a user sitting at a local machine would instead have the username and password checked against the information in the domain. This centralization makes administration much easier, sharing resources easier, etc.
A workgroup is the old Windows 3.11 way of doing things, although it still works with later versions of Windows. Instead of centralized control with a domain controller, each PC can offer to share resources or not, and then access resources on other PCs. There's typically no central server in a workgroup, although it is possible that everyone is sharing resources from just one PC. It's harder to authenticate users in a workgroup (all one has to do is set the workgroup name on their PC on the same network and they're in your workgroup) and somewhat more difficult to administer, but it's much cheaper in that it doesn't require a server operating system or computer.
Editted to add: Without changing my original post, I have to concede to Andy that the Domain concept was around before Active Directory... and even, in a different form, before Windows NT (when you consider earlier versions of Novell centralized services, for instance).
In today's real world, when someone talks about a Windows domain, they're more than likely talking about Active Directory. It is wrong to assume that a Windows domain has to be Windows NT; it can be run on NT, 2000 or 2003. I do stand corrected on my portion of the history lessons, but stand behind my 'present day' original answer, and throw in some other aspects to complete the history lesson on domain administration (since "windows" was never specified in the original question).