I just recently bought a new desktop PC. After doing a fair bit of research, I eventually ended up buying one a Best Buy. Prices were almost as good as anywhere on-line, and if I had a dud I could return it (only for 2 weeks though). Computers are a very competitive market, so I don’t think you’re going to find an amazing deal anywhere, unless there’s a catch. Just buy it from a local large store that sells computers; there are several. I don’t think you’ll save much money building one yourself, but you could get a better system by doing so, if you’re willing to spend a bit more. On the cheap end, you’ll just never find all the parts cheap enough to make it worthwhile building one yourself.
$400 is a pretty tight budget, but is okay for a basic system to do the kind of stuff you want to do.
Don’t worry about the processor; they’re all plenty powerful enough for what you want to do, and the differences are small at that price point.
Go with at least 8GB RAM. You could get away with less, but you don’t want to unless you’re only using it for web browsing or something very basic.
Forget SSD drives, they won’t fit into your price point and still give you enough storage. Go with a 1 TB regular drive, it will be fine and give you plenty of space. 2 TB is pretty cheap as well, if you think you’ll need more space.
On-board graphics are fine unless you’re into heavy gaming, which you won’t be with a $400 computer.
A basic DVD drive is fine too. You’ll probably never use it anyway.
All desktops come with plenty of USB ports, etc., so you don’t have to worry about that. Just make sure it has an HDMI out (and maybe VGA out), so you can plug in any monitor.
One other option to consider is a laptop PC. You can still hook up an external monitor and keyboard to it, and use it like a desktop. The downside is it will be less powerful. The upside is it’s portable.