DNP 3.0 has quite a bit more functionality that Modbus, but in a surprising number of circumstances, it is used just like Modbus would be (the same is true for the other fieldbus protocols as well...).
Both are asynchronous protocols designed to be used over top of RS-232/422/485 and both can be routed over TCP/IP.
I'd say the main criteria to consider is whether you need the functionality that DNP3 provides that Modbus doesn't and then whether the equipment you're considering supports DNP, Modbus or both. You don't mention what industry you're in but I am willing to bet whichever it is, more equipment you might consider implementing is going to have a Modbus port than a DNP3 port.
I have actually done some specific research and testing on this topic. Here's the "Reader's Digest Condensed" version.
In general here is a description of the two protocols:
Modbus - protocol designed for exchange of data of either one bit binary registers or 16-bit registers. Many extensions and clever uses of the protocol have allowed more complex operations built on the fairly straight-forward function codes and messages. Virtually every industrial automation platform has some connectivity to Modbus making it one of the most popular and widespread (although not the most powerful) protocols for exchanging data. The Modbus specs are fully owned by Modicon/Schneider. See www.modicon.com for more information.
DNP 3.0 - protocol evolved from early work on the IEC-870 protocols by a SCADA manufacturer, Westronic/Harris (now GE-Harris). DNP 3.0 is a generation beyond Modbus. Key features that set it apart are Object type descriptions, many data types including floating point numbers, event based data collection, and advanced features like virtual terminal and file exchange. See www.dnp.org.
Both Modbus and DNP have specifications for operation over an Ethernet network.
In a head-to-head test that I performed, DNP 3.0 significantly outperforms Modbus in terms of getting a control across a DNP network to a device's output contacts. DNP 3.0 also outperformed Modbus in the overall round trip from operator control input at the HMI to display on the HMI. This is primarily due to DNP's use of event data. It is possible for the master device to poll for events rather than collect all registers in order to determine what has changed. DNP slaves can even be programmed to report changes to the master in an unsolicited fashion. A system with a star network using DNP between the HMI and the star's central node (a communications processor) operated even faster than the DNP multidrop network.
While I'm partial to DNP, I would definitely suggest that you spend some time researching the devices you will be using and the data producers/consumers that you will have on your system and pick the protocol that meets your needs the best. I can provide you with some additional details of testing and several technical/conference papers on related topics in power system integration and automation.