I had a server with a very big difference in the disk usage report of df and what du said I was actually using. The cause was that Apache had many open file descriptors to deleted log files. You can see all the deleted file descriptors with:
# ls -ld /proc/*/fd/* 2>&1 | fgrep '(deleted)'
# lsof +L1
# lsof -a +L1 /home