$ sudo apt-get install xloadimage
(for debian at least)
$ xsetbg background.png
beyond that it's how you start your GUI that can get in the way. I use startx so:
FILE: $HOME/.xinitrc
Code:
xrandr --output HDMI-0 --brightness 0.55 --gamma 1.15:1.15:1.15
xsetbg libbyewing.png
exec cwm
Various display managers can trigger a background: lightdm, gdm, kdm, xdm, wdm, slim, ... ... ...
Starting other things can trigger backgrounds: nautilus, switching de's from a de, ... ... ...
Installed by default is a utility xsetroot. Not so useful for images, but you can use it to set the background to solid colors or patterns.
$ xsetroot -solid rgb:00/44/00
$ xsetroot -solid Blue4
$ xsetroot -bitmap /usr/include/X11/bitmaps/plaid
$ xsetroot -bitmap /usr/include/X11/bitmaps/scales
$ xsetroot -bitmap /usr/include/X11/bitmaps/root_weave
$ xsetroot -bitmap /usr/include/X11/bitmaps/wide_weave