It depends on whether you want to develop applications for a full
embedded OS (usually Linux), a RTOS (linked together with the
application into a monolithic binary) or if you'd rather write a "bare
metal" application which does not use an operating system, but accesses
the hardware via driver libraries.
Furthermore, there are different ARM families in use, most notably ARM7,
ARM9, ARM966T and Cortex-M3. These cores are embedded in micros from
various manufacturers, like Atmel (AT91SAM, AT92RM), NXP (LPC2xxx), STM
(STR9, STM32) and others.
On the smaller, ARM7-based variants a full OS can not be run due to
memory restrictions mostly. But they are cheap and easily available if
you can live with using a RTOS, which allows you task scheduling and
such, often handles additional things like TCP/IP if available), or
writing all needed functions by yourself. ARM7-based boards are fairly
easy to build for the hobbyist, and most solutions are cheap and
If you want to go all the way, though, you could look out for readily
available ARM-based hardware, which is not only found in routers. The
Philips VP6500 IP-Phone is a hackable linux-based ARM platform recently
discussed here in Germany, for example.