Bones absorb more xrays than soft tissue because of the Calcium in the bones (and the high density helps too, but the same densities of, say, Carbon or Silicon, wouldn't absorb as many x-rays). The high atomic number of Calcium (20), dramatically increases the photoelectric effect, which is the main mechanism of xray absorption by bones.
If you go through the other elements common in the body, you'll see that most have a lower atomic number. The other common elements: Carbon (6), Oxygen (8), Hydrogen (1), etc, just can't compete with Calcium. This also explains why Iodine (atomic number 53) works as a contrast agent (along with being relatively safe and water soluble).