I recently built a Mini ITX server to replace a larger, more power hungry, desktop server.
This is the setup. The motherboard is relatively expensive but includes dual RJ45 jacks, 64 bit dual core HT Atom D510, and PCIe. You can find cheaper boards with dual RJ45 jacks, but with legacy PCI (some with Mini PCIe which is worthless) and x86 VIA processors. I'm hoping to get many years out of this system and I don't want legacy hardware or software interfaces.
This server serves as a Wi-Fi access point, ethernet router, stateful firewall, NFS server, SVN server, SSH server (tunneling), and web server.
The D-Link DWA-556 is one of two PCIe wireless cards that I could find (Neither Netgear nor Linksys produce one). It's based on the Atheros AR5008 chipset and works swell for hostap in FreeBSD and Linux (as with previous Atheros chipsets). The other PCIe wireless card is the cheaper Asus PCE-N13 which is based on the Ralink RT2860 chipset and presently only supported by OpenBSD and Linux. I have no experience with Ralink cards and hostap. I would only recommend Atheros cards for Wi-Fi access points.
For size comparison,
here is a picture of a mid-tower ATX case and a Mini ITX case side-by-side. Here, the Mini ITX system is being configured to assume it's new role.
NOTE: If you build a Mini ITX system with a slim drive (e.g. like a Laptop DVD drive), be sure to order a Slim SATA cable as slim drives don't use the ordinary SATA cables. Slim SATA cables combine power and SATA into one.