The simplest method to design an FIR filter is based on a technique called windowing. First we design an "ideal" filter (actually truncated ideal filter) with a certain length, e.g. an ideal low pass filter as the following matlab function does:
-------------------------------
function hd = ideal_lp(wc,M);
% Ideal LowPass filter computation
% --------------------------------
% [hd] = ideal_lp(wc,M)
% hd = ideal impulse response between 0 to M-1
% wc = cutoff frequency in radians
% M = length of the "ideal" filter
%
alpha = (M-1)/2;
n = [0:1
M-1)];
m = n - alpha + eps; % add smallest number
%to avoid divide by zero
hd = sin(wc*m) ./ (pi*m);
----------------
The you multiply hd with a certain window function (hanning, hamming, kaiser, etc). See helps in matlab on the window functions. This window function will shape the transfer function of the FIR filter such that it has better properties than the original hd, e.g. lower side-lobes.
best