I also have been trying to get PCI passthrough working and have learned a few things:
1) Motherboard and BIOS must support VT-d (intel) /IOMMU (AMD). Usually this info is available online before you buy: read manuals and processor spec-sheets.
2) Kernel must be quite recent (I believe newer than 2.6.35) and must have been compiled with IOMMU support enabled. V11 of ubuntu uses version 3 of the kernel and this works as shipped.
3) Here is the worst bit: The PCI slot must NOT use a shared interrupt. This is a VirtualBox limitation, and is a real problem because almost every motherboard that supports IOMMU/VTd does not have any PCI slots that are on a non-shared interrupt. Intel won't tell me if any of their boards meet this requirement (without signing an NDA, believe it or not!) and the information is not available in the manuals. Using lspci, I can confirm that the DQ67SW (which I have) has the only PCI slot on a shared interrupt. The only unshared interrupt appears to be unused. I did find an ASUS motherboard which the manual claims to have a PCI slot on an unshared interrupt, but I can't recommend it because I have not actually evaluated it myself. Note that the same restrictions apply for PCIe as for PCI. I have seen no boards at all that have unshared PCIe slots.
The upshot is that until VirtualBox supports shared interrupts on PCI passthrough, the feature will remain essentially useless. I believe that they will eventually support shared interrupts, since some of their competition already does (XEN for example) and in order to really be a GP virtualization product they will have no choice.
P.S. I thought that I should at least identify the ASUS board mentioned above. It's the ASUS MSA99X EVO, with AMD3+ socket. It supports IOMMU and has an unshared interrupt on the (only) PCI slot (see page 32 of the manual). Caveat Emptor---I have NOT yet tested this MoBo/CPU combination.