You can use a router to provide DHCP, just make sure you specify Option 150 in the DHCP scope whether you use the router or another service, Option 150 allows specification of the call manager servers so the phones can download their configs.
Switches, you can ran any PoE switch, 3750 or 3560. The 100 meg switches are significantly cheaper than the ones with gigabit connections to the desktops, and depending on what phones are going to be installed, not all phones support gig connections anyways.
For QOS on the switches, you are talking about CoS (Class of Service). Autoqos is your best option, theres really no need to do anything other than that.
http://www.cisco.com/en/US/technologies/tk543/tk879/technologies_white_paper0900aecd800a8561.html
For QOS on routers you are talking about DSCP, and again Autoqos is the way to go.
http://www.cisco.com/en/US/docs/ios/12_2t/12_2t15/feature/guide/ftautoq1.html
For resilency, obviously any redundant topology links will benefit you. If you loose communication to your call manager there is a technology called SRST you can configure on the routers, which will in essence continue handling the VoIP until call manager communication is restored.
http://www.cisco.com/en/US/products/sw/voicesw/ps2169/tsd_products_support_series_home.html
Also with your router choice, if you choose something such as a 2801 or 2811, you can get FXO and FXS cards, this will allow you POTS (analog) phone capability if you loose your PRI or uplink. You can use those analog ports for 911 services and in conjunction with SRST configurations.
I hope that helps get you in the right direction,
Craig