Shadow will make your image looks more realistic because every item or every person in real life have shadows. There are different ways to make shadow. One of them is to duplicate the image you want to add the shadow for and then put the Gaussian Blur filter on it. Tweak the opacity and the layer style, then put it on a place that suits your image. I’ve found a good tutorial in “How to make shadow”.
How proportionate you place the object in your image will make a difference in how realistic your image will look like. Perspective is also important. A good image must have a balance volume, space, depth, and distance.
An image without texture can make it looks flat. Texture can add depth to the image when blend correctly. Picking the right texture to use is also important to create the impression that you want. For example, using dark brick texture for grungy effect, etc.