In Ubuntu 10.04 LTS (and also in previous versions as well) the DHCP3-server fails to start when using a bridged config. There are some solutions, but the best one is using the post-up and pre-down directives in the /etc/network/interface file and disabling the daemon from automatically starting in the same runlevel.
# The loopback network interface
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
address x.x.x.x
netmask 255.255.255.0
gateway x.x.x.x
bridge_ports eth0 eth1 ethN
bridge_maxwait 0
post-up /etc/init.d/dhcp3-server start
pre-down /etc/init.d/dhcp3-server stop
update July 2011: Ah, turns out there’s another card to be played. The bridge_maxwait 0 ensures that the network interface is presented as being instant up and running so other network dependent daemons can attach to it.