As of 2015/04/27, the Dropbox daemon looks for a couple of environment variables on startup to try and correctly display the tray icon. Since these environment variables aren't set by Elementary OS, Dropbox just gives up and doesn't try to display a tray icon.
To test this theory, stop the Dropbox daemon like so:
dropbox stop
Next, start it with these two environment variables set:
DROPBOX_USE_LIBAPPINDICATOR=1 XDG_CURRENT_DESKTOP=Unity \
dropbox start
Hooray, the tray icon is there!

To make this change permanent, you'll need to edit the autostart command for the Dropbox daemon. This desktop entry lives at $HOME/.config/autostart/dropbox.desktop
. Since "Dropbox knows best™," the start command automatically regenerates this file, overwriting any changes you'd make there.
Therefore, copy it to $HOME/.config/autostart/dropbox-better.desktop
. Next, create a script somewhere which will start Dropbox properly:
#!/bin/bash
# stop it if it's running
dropbox stop &>/dev/null
# start it properly
DROPBOX_USE_LIBAPPINDICATOR=1 XDG_CURRENT_DESKTOP=Unity \
dropbox start -i
Now open the dropbox-better.desktop
file in your favorite text editor and modify it to this:
[Desktop Entry]
Name=Dropbox (Better)
GenericName=File Synchronizer
Comment=Sync your files across computers and to the web
Exec=/absolute/path/to/start-dropbox.sh
Terminal=false
Type=Application
Icon=dropbox
Categories=Network;FileTransfer;
StartupNotify=false
Log out and back in again to test that it's working, and you, like me, will finally have a Dropbox tray icon after something like 18 months without one!