ATMs are easily avialable in Rajasthan. In major cities it's possible to at least get a credit card advance from a bank (which works for MasterCard and Visa), if not actually withdraw money from a machine. Most machines do take foreign credit cards—but do not rely on ATMs as a source of cash in Rajasthan. The Bank of Baroda in Jaisalmer offers credit card advances weekdays 10-2 and Saturday 10:30-11:30. Most Bank of Baroda's are open 9-1 and 2-3:45.
Ahmedabad is probably the best place to find an ATM in Gujarat. C. G. Road is the city's major financial center, home to Citibank, HSBC, and other banks. The State Bank of India at Lal Darwaja (the bus stand) and the Bank of Baroda on Relief Road on the eastern bank of the Sabramati River also have ATMs.
Nearly all hotels exchange foreign currency for their guests. You might get better rates at state banks, but the hassle of waiting in line may defeat the purpose.