Search for the ARM ARM, ARM Architectural Reference manual. Covers the boot process, architecture, assembly (ARM, thumb and thumb2), everything. The ARM ARM is generic, for the specific core you are interested in there will also be a TRM, Technical Reference Manual. All of these documents are available for free from ARM's website. The TRM will get into the specific details for that core, in particular if you want to use one of the newer Cortex-M3 based microcontrollers, the boot sequence or lets say the exception table is different from the traditional ARM and you need the TRM for the Cortex-M3 to find the information.
if you end up with an arm with a cache or mmu, you may also need to get the TRM for that from ARM's website. You need to know the specific core built into the particular vendors chip, for example the PL310 r2p0 can/may be different from the r3p0. The vendor should have this info and might provide links to or perhaps the arm docs directly, normally they do not embed the arm docs in their own documentation. I think ARM prefers it that way.
As far as C goes, it is just C, nothing special, ARM is supported by the mainstream compilers, gcc, llvm, Keil (now owned by ARM), IAR, green hills, etc. Microsoft even has/had one (would avoid it though). Nothing special for the ARM, but you need to know the nuances for the specific compiler and its linking. Code Sourcery is the way to go these days for a ready to use gcc based ARM compiler, the LITE version is free to download and use, and there are pay for versions if you want support (more free gcc arm support at google.com than you have time to read). Prior to code sourcery emdebian was a place to go, for some things yagarto and devkitarm and winarm all had/have ready to use solutions (for embedded and not necessarily linux, Code Sourcery or emdebian if you want to cross compile for linux).
I have a few blogs which are not really blogs, but places to put some sample programs and information on how to bring up a few different ARM based microcontrollers. Some asm some C, the older blogs I show how to build your own gcc based cross compiler. I may have llvm info too (thumbulator has a couple of examples, not documented though), out of the box llvm can be used as a cross compiler for a number of platforms, you dont have to build it to a target like gcc. And llvm's code generation has caught up to gcc 4.x (gcc 4.x is not necessarily better than gcc 3.x and neither gcc or llvm are as good as other expensive pay for ones like ARMs own compilers).
http://stm32stuff.blogspot.com/
From there you can click on my profile and find similar info for lpc, lmi (luminary micro, the stellaris parts, now owned by ti) sam7. I am not as much of a fan of the lpc family, mbed2 is okay other than the painful blue leds. right now there is a $12 stm32 based board, some discovery something, ready to play with out of the box. coridium has a board that matches the arduino footprint as does maple, can get one or both at sparkfun (lots of goodies at sparkfun). if you are looking for something more powerful the beagleboard was painful for the lack of interfaces, the chinese version for the same price is/was better (showed up in a week or two but no tracking info of any kind), has ethernet and a not-screwed-up serial port. I like the hawkboard but I think they failed to follow the design guide and they may have problems with the omap. Liked the openrd from the plug computing folks, but hated the plug version. The openrd has a sata power and data connector on the board, simply plug a hard drive in, other boards in this class are going to force you to something flash based (read: very slow). the marvell cores are running circles around the ti omaps at the moment anyway.
or try my thumbulator (github) thumb instruction set simulator for free, but limited to thumb, no arm (you can take your code from it to the stm32 boards though, like the $12 one). the armulator which is in gdb and elsewhere is probably more painful to use, but does support arm and thumb, and qemu is easy to use if you have no interest in seeing what your code is doing other than serial port output. qemu supports arm, thumb and thumb2, I think a stellaris board or two is modeled there.
If you already know AVR assembler, which is not that great of an instruction set (better than some, worse than others) you should not have any problem with ARM or thumb, a little cleaner, a little simpler. Likewise if you have done embedded C (outside of a sandbox) with the AVR, then ARM will be the same or easier. You can go with the mbed or maple where they have sandboxes that should make it easy to get started and then if you want to venture off on your own you can without much trouble. the mbed you simply copy the .bin to the virtual flash drive, the maple you use their loader or dfu-util or something like that I dont remember.