From DTFT to DFT, why do we take N samples in frequency domain
As mentioned in the comments, \$N\$ typically represents the number of time-domain samples to be transformed. 


  In frequency domain, can we choose other sampling rate to get DFT?


Think about this in terms of information. I'll talk about systems where the time-domain signal is real-valued. Then in the time domain, you have \$N\$ real numbers. That's all the information you have about your signal.

In the frequency domain, with \$N\$ samples you end up with \$N-1\$ complex numbers and 1 real number (because the zero-frequency bin always has a real value). So some of this information is redundant, and in fact you will find there are DFT techniques that calculate only the positive frequency bins and discard the negative frequency bins to avoid storing redundant information.

If you chose to represent your frequency domain signal with \$M\$ values, with \$M &lt; \frac{N}{2}\$, you'd be throwing away information. Your frequency domain signal wouldn't contain all the information in the time domain signal.

If you chose to represent your frequency domain signal with \$M\$ independent values, with \$M &gt; \frac{N}{2}\$, you'd be generating and storing redundant information. Your frequency domain signal would contain more information than the time domain signal, so some of this information would have to be created by some arbitrary choice, and it wouldn't tell you anything new about your actual signal.

Note, there are some signal-processing techniques that do effectively use \$M &gt; \frac{N}{2}\$. For example, if you "zero-pad" your time-domain signal before taking the DFT, you will obtain a smoothed frequency domain signal with extra (non-informative) bins between the usual bins, giving the appearance of greater frequency resolution. This can be useful for visualizing a complicated spectrum, but it doesn't actually produce any new information about the signal.