How to optimize images/graphics for low end devices to reduce the load on RAM. Do i have to take two images for high res, and low res?

I want to reduce the load on Memory due to images in my 2D game for low-end devices with low RAM.

Drop the texture resolution, until you dont see a visual negative. For mobile 256-512 is usually common. Use texture Atlas. More info on textures:

When your Texture Type is set to anything else than Advanced, you will have 4 options:
Compressed – It trades a little of GPU power for a much lower texture size. Compressed option will use the most suitable compressing algorithm for your target platforms.
16 bits – Saves the texture without a compression but it is using 16 bit color palette. Good for textures with small amount of colors.
Truecolor – Saves the texture using uncompressed 32 bit color palette. Looks great, but large 2048×2048 texture will require almost 17 megs of memory.
Crunched – Compressed using compression format suitable for the GPU and then compressed again using compression format that can be handled only by the CPU. Good for downloadable asset bundles.

Yes, it is best to take two images - one for high-resolution devices and one for low-resolution devices. You can optimize the images by using the Sprite Atlas, which allows you to combine multiple images into one texture. This will reduce the load on RAM. Also you can also use texture compression and mipmaps to reduce the image size and improve performance.